2013-05-08 6 views
5

मैं समझ नहीं पा रहा हूं कि दस्तावेज़ इसके बारे में क्या कहता है।एंड्रॉइड HttpURL कनेक्शन: gzip संपीड़न

डिफ़ॉल्ट रूप से, HttpURLConnection अनुरोधों का यह कार्यान्वयन सर्वर जो gzip संपीड़न का उपयोग करता है। चूंकि getContentLength() प्रेषित बाइट्स की संख्या देता है, आप अनुमान लगाने के लिए उस विधि का उपयोग नहीं कर सकते हैं कि getInputStream() से कितने बाइट्स को पढ़ा जा सकता है। इसके बजाय, उस स्ट्रीम को समाप्त होने तक पढ़ें: जब पढ़ें() रिटर्न -1। Gzip संपीड़न अनुरोध हेडर में स्वीकार्य एनकोडिंग की स्थापना द्वारा निष्क्रिय किया जा सकता:

urlConnection.setRequestProperty("Accept-Encoding", "identity"); 

मुझे पता है कि अगर वर्तमान कार्यान्वयन वास्तव में यह लौटने (conn.getInputStream() का प्रयोग करके) से पहले धारा संपीड़न हटाने चाहते हैं या अगर यह बस कहता है कि कनेक्शन स्वचालित रूप से gzip एन्कोडिंग के लिए हेडर भेजता है और मुझे इसके साथ प्रबंधन करने की आवश्यकता है।

धन्यवाद।

उत्तर

11

आपको इसे संभालने की आवश्यकता नहीं है। बस conn.getInputStream()

का उपयोग this ब्लॉगपोस्ट से:

जिंजरब्रेड में, हम पारदर्शी प्रतिक्रिया संपीड़न गयी। HttpURLConnection स्वचालित रूप से बाहर जाने वाले अनुरोध करने के लिए इस शीर्ष लेख जोड़ने के लिए, और इसी प्रतिक्रिया संभाल लेंगे:

Accept-Encoding: gzip

+1

स्रोत: [Android डेवलपर ब्लॉग - Android का HTTP ग्राहक] (http: // android-डेवलपर्स। blogspot.com/2011/09/androids-http-clients.html) – Czechnology

संबंधित मुद्दे