在我的程序中,我正在调用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);
        }
     }

最佳答案

我不熟悉Apache HttpCore,但是我知道在Servlet中您无法两次从HttpServletRequest中读取日期。它使用缓冲区,并且一旦缓冲区末尾,如果您尝试对其进行两次读取,则会得到IOException,因为缓冲区现在为空。

关于java - EntityUtils .consume返回IOException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9768591/

10-11 21:40