我想使用DOM方法從Android上的web上解析文件。在Android上處理gzip內容
有問題的代碼是:
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);
}
但我發現了以下異常:
V/XMLParseTest1( 846):Exception = org.xml.sax.SAXParseException: name expected (position:START_TAG <null>@2:176 in [email protected])
該文件被交給我gzip壓縮。我在調試器中檢查了is
對象,其長度爲6733字節(與響應頭文件中的文件內容長度相同),但是如果從瀏覽器將文件保存到我的硬盤驅動器,它的大小爲59114字節。此外,如果我將它上傳到我自己的服務器,而服務器在服務它們時不會gzip XML-s,並且設置了URL,那麼代碼運行得很好。
我猜測會發生什麼是Android試圖解析gzipped流。
有沒有辦法先解壓縮流?任何其他想法?
看看這個鏈接http://stackoverflow.com/q/6717165/779408。在那裏表示壓縮和解壓縮方法。 – breceivemail 2013-01-15 10:38:43