我从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);
答案 0 :(得分:0)
通过更改代码我不再有问题了:
InputStream stream = request.getResponseStream();
reader = new InputStreamReader(stream);
this.xmlParser.setInput(reader);