ソースを参照

优化 readData(),避免使用 BufferedReader,其消耗 8K 内存

James 4 年 前
コミット
bd77af12fe
1 ファイル変更3 行追加4 行削除
  1. 3 4
      src/main/java/com/jfinal/kit/HttpKit.java

+ 3 - 4
src/main/java/com/jfinal/kit/HttpKit.java

@@ -16,7 +16,6 @@
 
 package com.jfinal.kit;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
@@ -252,11 +251,11 @@ public class HttpKit {
 	
 	public static String readData(HttpServletRequest request) {
 		try {
-			BufferedReader br = request.getReader();
+			String ce = request.getCharacterEncoding();
+			InputStreamReader isr = new InputStreamReader(request.getInputStream(), ce != null ? ce : CHARSET);
 			StringBuilder ret = new StringBuilder();
-			
 			char[] buf = new char[1024];
-			for (int num; (num = br.read(buf, 0, buf.length)) != -1;) {
+			for (int num; (num = isr.read(buf, 0, buf.length)) != -1;) {
 				ret.append(buf, 0, num);
 			}
 			return ret.toString();