2014-02-04 4 views
0

У меня есть HttpEntity, которую я получил с веб-сервера. Если я проверю, что HttpEntity с getContentLength(), оно показывает значение> 0. Таким образом, кажется, что контент. Я запускаю getContent(), чтобы получить InputStream, и на этом InputStream я запускаю read() для получения содержимого. В первой операции read() он выдает исключение IO, что поток закрыт «Попытка чтения в закрытом потоке».Не удается получить InputStream из HttpEntity

Мой код:

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

Так что я не называю близко() на этом потоке. Я не исключаю, что что-то не так с HttpEntity, глядя на MyEntity в отладчике я вижу (понятия не имею, если это не помогает):

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

getContentLength() на InputStream показывает значение, как на HttpEntity.

У меня нет понятия, с чего начать искать проблему. Что я могу проверить, чтобы найти проблему?

+0

Возможно ли, что ваш сервер отправляет заголовки, но не является телом ответа? –

+0

может быть. Но как я могу узнать? У меня нет доступа к серверу. Не содержит ли contentLength() заголовок и getContent()? – AndyAndroid

+0

Я бы подумал, что длина содержимого относится к заголовку, но может и не получить весь объект. Проверка немного сложнее. Попробуйте отправить один и тот же HTTP-запрос через сокет TCP. –

ответ

-1

Пожалуйста, обратитесь к this link который говорит повторяемые лица могут использовать getContent() и writeTo(OutputStream) процедуры только один раз.

Чтобы узнать, имеет ли ваша организация ПОВТОРНОЕ ОПИСАНИЕ, используйте isRepeatable().

Смежные вопросы