EntityUtils .consume返回IOException

时间:2012-03-19 10:30:41

标签: java ioexception

在我的程序中,我正在调用EntityUtils.consume(httpResponse.getEntity())。这会在代码中抛出IOException,而对EntityUtils.toString(httpResponse.getEntity())的调用则完全正常。关于问题可能是什么的任何想法?或者任何修复IOException的建议?

    if(status >= 200 && status < 300) {
        HttpEntity httpEntity = httpResponse.getEntity();
        if (httpEntity != null) {
           if(httpEntity.getContentLength() > Constants.HTTP.MAX_APP_CONTENT_LENGTH) {
               throw new IllegalArgumentException("HTTP entity too large.");                            
            }
        result = EntityUtils.toString(httpEntity,"UTF-8");
        EntityUtils.consume(httpEntity);                
        }
     }

1 个答案:

答案 0 :(得分:1)

我不熟悉Apache HttpCore,但我知道在Servlet中你无法从HttpServletRequest中读取两次日期。它使用缓冲区,一旦缓冲区结束,如果你尝试读取它两次,就会得到一个IOException,因为缓冲区现在是空的。