Tôi đang cố gắng phân tích cú pháp tệp từ web trên Android bằng phương pháp DOM.Xử lý nội dung gzipped trên Android
Các mã trong câu hỏi là:
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);
}
Nhưng tôi nhận được ngoại lệ sau đây:
V/XMLParseTest1( 846):Exception = org.xml.sax.SAXParseException: name expected (position:START_TAG <null>@2:176 in [email protected])
Các tập tin đang được giao cho tôi gzip. Tôi đã kiểm tra đối tượng is
trong trình gỡ lỗi và độ dài của nó là 6733 byte (giống như độ dài nội dung của tệp trong tiêu đề phản hồi) tuy nhiên nếu tôi lưu tệp vào đĩa cứng của mình từ trình duyệt, kích thước của nó là 59114 byte. Hơn nữa nếu tôi tải nó lên máy chủ của riêng tôi mà không gzip XML-s khi nó phục vụ họ và thiết lập URL mã chạy tốt.
Tôi đoán rằng điều xảy ra là Android cố gắng phân tích cú pháp luồng đã nén.
Có cách nào để giải nén luồng đầu tiên không? Bất kỳ ý tưởng nào khác?
xem liên kết này http://stackoverflow.com/q/6717165/779408. Phương pháp nén và giải nén được biểu diễn ở đó. – breceivemail