Actualicé mi teléfono a Gingerbread hoy (2.3.2) y encendí una aplicación que desarrollé y vi que no pudo cargar sus datos. La aplicación funciona bien en cualquier otra versión de Android que he probado de 1.6 a 2.2, pero luego una IOException en Gingerbread. ¿Alguien sabe si algo cambió en GZipInputStream o URL.openStream()?GZIPInputStream falla con IOException en Android 2.3, pero funciona bien en todas las versiones anteriores?
El código problemática es similar al siguiente:
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;
}
en la versión 1.6 a 2.2, este código funciona bien, en el 2,3 consigo una IOException con un mensaje sobre el bloque de la magia de ser incorrectos. Asumo que algo ha cambiado con openStream que está estropeando el tipo MIME o algo así en esta información. Leí en otros lugares que openStream no es la forma más confiable de manejar las conexiones HTTP, por lo que esta podría ser una buena excusa para volver a trabajar en mi código de conexiones.
Funciona bien si cambio el código para usar HttpClient y uso una solicitud HttpGet en él. Algo debe haberse roto en la función URL.openStream(). Oh, bueno, con suerte esto ayudará a salvar a alguien más en algún momento. –