方式一:
//5.读取内容
//String responseMsg = postMethod.getResponseBodyAsString().trim();
//########################################################//
//解决报警告的问题WARN : org.apache.commons.httpclient.HttpMethodBase -
//Going to buffer response body of large or unknown size.
//Using getResponseBodyAsStream instead is recommended.
InputStream is = postMethod.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
String str= "";
while((str = br.readLine()) != null){
sb.append(str);
}
String responseMsg = sb.toString();
//########################################################//
//System.out.println("responseMsg:" + responseMsg);
//6.处理返回的内容
JSONObject jsonObject = JSONObject.fromObject(responseMsg);
String code = jsonObject.getString("code");
String msg = jsonObject.getString("msg");
System.out.println("code:" + code + " " + "msg:" + msg);
方式二:
//5.读取内容
//会报警告
//String responseMsg = postMethod.getResponseBodyAsString().trim();
//不报警告
InputStream inStream = postMethod.getResponseBodyAsStream();
String responseMsg = inputStream2StringNew(inStream);
//System.out.println("responseMsg:" + responseMsg);
//bug,中文为乱码
//InputStream转String
public String inputStream2String(InputStream in) throws IOException {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1;) {
out.append(new String(b, 0, n));
}
return out.toString();
}
// 解决 InputStream 转化 String 乱码问题
public String inputStream2StringNew(InputStream is) {
try {
ByteArrayOutputStream boa = new ByteArrayOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while ((len = is.read(buffer)) != -1) {
boa.write(buffer, 0, len);
}
is.close();
boa.close();
byte[] result = boa.toByteArray();
String temp = new String(result);
// 识别编码
if (temp.contains("utf-8")) {
return new String(result, "utf-8");
} else if (temp.contains("gb2312")) {
return new String(result, "gb2312");
} else {
return new String(result, "utf-8");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}