Estoy tratando de analizar un archivo de la web en Android utilizando el método DOM.Gestionar contenido comprimido en Android
El código en cuestión es:
try {
URL url = new URL("https://www.beatport.com/en-US/xml/content/home/detail/1/welcome_to_beatport");
InputSource is = new InputSource(url.openStream());
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(is);
document.getDocumentElement().normalize();
} catch(Exception e) {
Log.v(TAG, "Exception = " + e);
}
Pero me estoy haciendo la siguiente excepción:
V/XMLParseTest1( 846):Exception = org.xml.sax.SAXParseException: name expected (position:START_TAG <null>@2:176 in [email protected])
el archivo está siendo entregado a mí gzipped. Revisé el objeto is
en el depurador y su longitud es de 6733 bytes (igual que la longitud del contenido del archivo en los encabezados de respuesta); sin embargo, si guardo el archivo en mi disco duro desde el navegador, su tamaño es 59114 bytes. Además, si lo subo a mi propio servidor, que no almacena gzip XML-s cuando les sirve y configura la URL, el código se ejecuta correctamente.
Supongo que lo que sucede es que Android intenta analizar la secuencia gzip.
¿Hay alguna manera de descomprimir la secuencia primero? ¿Alguna otra idea?
mira este enlace http://stackoverflow.com/q/6717165/779408. Aquí se representa un método de compresión y descompresión. – breceivemail