0

HTTPResponse から XML ドキュメントを解析します。以前は、InputStream から作成された String オブジェクトを使用してパーサーを開始しました。

inputStream がパーサーで直接使用されるように設定を変更すると、OutOfMemory Exceptions が発生します。

奇妙なことに、以前は String の解析は問題なく機能していたので、なぜ InputStream により多くのメモリが必要なのか疑問に思います。

以前のコード:

final byte[] encodedResponseBytes = IOUtils.toByteArray(httpResponse
            .getEntity().getContent());

String message = new String(encodedResponseBytes);

parser.setInput(new StringReader(message));

新しいコード:

InputStream stream = httpResponse
            .getEntity().getContent();
parser.setInput(stream, null);
4

1 に答える 1

0

コードを変更することで、もう問題はありません。

InputStream stream = request.getResponseStream(); reader = new InputStreamReader(stream); this.xmlParser.setInput(reader);

于 2013-03-15T19:20:21.250 に答える