我在解析一些从 Web 服务器响应的 json 数据时遇到了很大的问题。我正在做的事情是通过 POST 获得响应,然后将响应转换为字符串并解析它。但是在某些设备中,我得到了OutOfMemoryError
,我正在尝试修复。这是我将响应转换为字符串的方式:
public static String convertStreamToString(InputStream is) throws Exception {
ByteArrayOutputStream into = new ByteArrayOutputStream();
byte[] buf = new byte[4096];
for (int n; 0 < (n = is.read(buf));) {
into.write(buf, 0, n);
}
into.close();
return new String(into.toByteArray(), "UTF-8");
}
这是我使用这段代码的方式:
InputStream response = new BufferedInputStream(connection.getInputStream());
try {
String responsee = convertStreamToString(response);
jsonParser(responsee);
} catch (Exception e) {
e.printStackTrace();
cancelDialog("Error occurred! Please try again later.");
}
有什么建议可以解决这个问题,所以不会在所有设备上发生?
在此先感谢您提供任何帮助或建议。