Сегодня я обновил свой телефон до Gingerbread (2.3.2) и запустил приложение, которое я разработал, и увидел, что оно не может загрузить свои данные . Приложение отлично работает на всех остальных версиях Android, которые я тестировал от 1.6 до 2.2, но затем IOException в Gingerbread. Кто-нибудь знает, изменилось ли что-то в GZipInputStream или URL.openStream ()?
Проблемный код похож на следующий:
InputStream in = null;
GZIPInputStream zin = null;
URL url = null;
try {
url = new URL("http://www.test.com/gzipped_data.gz");
in = url.openStream();
zin = new GZIPInputStream(in);
}
catch (MalformedURLException e) {
return false;
}
catch (IOException e) {
return false;
}
В версиях с 1.6 по 2.2 этот код работает нормально, в 2.3 я получаю исключение IOException с сообщением о том, что волшебный блок неверен. Я предполагаю, что что-то изменилось с openStream, что испортило MIME-тип или что-то в этих данных. Я читал в других местах, что openStream - не самый надежный способ обработки HTTP-соединений, так что это может быть хорошим предлогом для переделки моего кода соединений.