Я пытаюсь прочитать png-изображение 800ko с помощью inputStream в моем приложении для Android.Вот мой код:
URLConnection con = url.openConnection();
con.setConnectTimeout(240000);
con.setReadTimeout(240000);
InputStream is = con.getInputStream();
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = is.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
Log.v("TagReadingFile", "still reading");
}
return output.toByteArray();
URL-адрес изображения, который я пытаюсь прочитать, размещен на сервере AmazonS3.Мое соединение с Android составляет около 5-10 КБ / с
Через 2 минуты моя отладка "Все еще читается" больше не отображается, но я все еще в цикле while.После 4-минутного тайм-аута, который я установил, я получил исключение ввода-вывода.
Если я загружаю картинку, размещаю ее на моем сервере nginx, он работает.Даже если это медленно, цикл чтения не останавливается без информации, и я получаю свое изображение.
Ну, а почему is.read останавливается?Как я могу увидеть это остановить?(без создания альтернативного таймаута внутри моего приложения)