要求您的幫助從Android中的httpclient獲取json響應,因爲下面提到的代碼會導致應用程序在android設備上崩潰,尤其是在GingerBread設備上,因爲JSON響應的規模非常巨大(可能爲7 MB)。 所以我想知道從Http客戶端讀取JSON響應的另一種方式,因爲目前的實現消耗了太多的內存,並使我的應用程序在低端設備上崩潰。從Android中的Httpclient讀取大量數據(7MB或更多)時需要幫助
對於解決此問題的任何建議或幫助將非常有幫助。
HttpClient httpClient = new DefaultHttpClient(ccm, params);
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Cache-Control", "no-cache; no-store");
HttpResponse httpResponse = httpClient.execute(httpGet);
response = Utils.convertStreamToString(httpResponse.getEntity().getContent());
public static String convertStreamToString(InputStream is)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
//System.gc();
sb.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
這是一個圖像或PDF文件? – Ansar
這是一個只是txt文件,大約6.2 Mb,主要問題發生在下面一行while((line = reader.readLine())!= null){ sb.append(line).append(「\ n 「); } –
是響應是一個json數組? – Ansar