Почему HttpsURLConnection возвращает LocalCloseInputStream при вызове getInputStream () в Android 2.2? - PullRequest
0 голосов
/ 06 марта 2012

Каждый второй раз, когда я создаю HttpsURLConnection и затем вызываю getInputStream() метод, я получаю экземпляр LocalCloseInputStream вместо ChunkedInputStream, который немедленно возвращает end, когда я пытаюсь прочитать из этого потока.Исключений нет, просто пустой поток.

Я уже пытался установить для keep.alive значение false и для закрытия соединения.Это не работает.

Там две проблемы выглядят довольно схожими, но, к сожалению, я не нашел никакого решения:

http://groups.google.com/group/android-developers/browse_thread/thread/d42c95992ae4dbda

http://groups.google.com/group/twitter4j/browse_thread/thread/105342823f7e3c67

1 Ответ

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

Для более ранних версий Android вы должны использовать HTTP-клиент Apache.Это работает намного лучше.

То, что вы видите, может быть вызвано вызовом #getInputStream() несколько раз - вы проверили, какое состояние по умолчанию для кэширования находится в вашем приложении (для кексов кеш включен по умолчанию)для соединений HTTP URL, т.е. во второй раз, когда ответ может быть отправлен из кэша, который вряд ли вернет ChunkedInputStream).

Вы можете отключить кэширование, позвонив #setUseCaches(false) на ваше соединение до , используя его (или отключив его для всех будущих соединений, позвонив #setDefaultUseCaches(false)

...