使用Apache HttpClient发送请求,有大量WARN警告:Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended
原因:使用了 getResponseBodyAsString()的缘故
修改:getResponseBodyAsStream(),如下:
public Response get(String url, NameValuePair[] params) {
Response response = new Response();
GetMethod method = new GetMethod(url);
method.setQueryString(params);
method.getParams().setContentCharset(UTF8);
try {
response.setStatusCode(httpClient.executeMethod(method));
// 使用getResponseBodyAsStream()代替getResponseBodyAsString使用流的方式来接收
// response.setBody(method.getResponseBodyAsString());
InputStream inputStream = method.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer stringBuffer = new StringBuffer();
String str = "";
while ((str = br.readLine()) != null) {
stringBuffer.append(str);
}
response.setBody(stringBuffer.toString());
return response;
} catch (Exception e) {
e.getStackTrace();
} finally {
method.releaseConnection();
}
return null;
}