EntityUtils .consume возвращает IOException - PullRequest
0 голосов
/ 19 марта 2012

В моей программе я звоню в 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 Ответ

1 голос
/ 19 марта 2012

Я не знаком с Apache HttpCore, но знаю, что в сервлетах вы не можете прочитать дату дважды из запроса HttpServletRequest.Он использует буфер, и как только буфер будет в конце, если вы попытаетесь прочитать его дважды, вы получите IOException, потому что буфер теперь пуст.

...