0

我有一个从 Web 服务器收到的 HttpEntity。如果我用 getContentLength() 检查 HttpEntity,它显示的值 > 0。所以似乎有内容。我运行 getContent() 以获取 InputStream,并在该 InputStream 上运行 read() 以获取内容。在第一次 read() 操作中,它会抛出一个 IO 异常,表明流已关闭“尝试在已关闭的流上读取。”。

我的代码是:

HttpEntity myEntity = myResponse.getEntity();
InputStream inputStream = myEntity.getContent();
inputStream.read();

所以我没有在那个流上调用 close() 。我不能排除 HttpEntity 有问题,在我看到的调试器中查看 myEntity(不知道这是否有帮助):

is1=EofSensorInputStream
eofWatcher=BasicManagedEntity
selfClosed=true
wrappedStream=null

InputStream 上的 getContentLength() 显示 HttpEntity 上的值。

我不知道从哪里开始寻找解决问题的方法。我可以检查什么来发现问题?

4

1 回答 1

-1

请参阅此链接,其中说REPEATABLE实体只能使用getContent()writeTo(OutputStream)处理一次。

要知道您的实体是否是REPEATABLE,请使用isRepeatable().

于 2015-07-16T10:44:35.477 回答