Android デバイスで SOAP サービスを使用していますが、応答としてサーバーから 7 MB のファイルを取得します。これにより、入力ストリームを文字列に変換するときにメモリ不足エラーでアプリがクラッシュします。MemoryAnalyzer は、メモリが StreamBuilder に割り当てられたことを示しています。このような大きな反応に対処する最善の方法は何ですか?
HttpEntity entity = new StringEntity(soap.toString());
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity r_entity = response.getEntity();
if( r_entity != null ) {
result = inputStreamToString(r_entity.getContent());
}
...
//convert stream to string
public static String inputStreamToString(InputStream stream) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
return sb.toString();
}