У меня есть 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.
У меня нет понятия, с чего начать искать проблему. Что я могу проверить, чтобы найти проблему?
Возможно ли, что ваш сервер отправляет заголовки, но не является телом ответа? –
может быть. Но как я могу узнать? У меня нет доступа к серверу. Не содержит ли contentLength() заголовок и getContent()? – AndyAndroid
Я бы подумал, что длина содержимого относится к заголовку, но может и не получить весь объект. Проверка немного сложнее. Попробуйте отправить один и тот же HTTP-запрос через сокет TCP. –