के साथ gzip-ed प्रतिक्रिया निकायों को डीकोड करना एक Emacs एक्सटेंशन के लिए, मैं HTTP पर डेटा पुनर्प्राप्त करना चाहता हूं। मुझे ऐसा करने में सक्षम होने के लिए wget
, curl
, या w3m
जैसी चीजों को खोलने के विचार का विशेष रूप से शौक नहीं है, इसलिए मैं url-retrieve
फ़ंक्शन का उपयोग कर रहा हूं।यूआरएल-पुनर्प्राप्ति
मैं जिन HTTP सर्वरों से बात कर रहा हूं उनमें से एक Accept-Encoding
शीर्षलेखों को अनदेखा करने के लिए होता है और हमेशा Content-Encoding: gzip
के साथ अपना डेटा भेजने पर जोर देता है।
इसके परिणामस्वरूप, और तथ्य यह है कि url-retrieve
स्वचालित रूप से प्रतिक्रिया निकायों को डीकोड नहीं करता है, बफर url-retrieve
प्रस्तुत करेगा मुझे बाइनरी gzip डेटा शामिल होगा।
मैं प्रतिक्रिया शरीर को डीकोड करने का एक तरीका ढूंढ रहा हूं, अधिमानतः खंड द्वारा खंडित, जैसे डेटा आता है। क्या मेरे लिए ऐसा करने के लिए url-retrieve
को निर्देश देने का कोई तरीका है?
एक बार यह पूरी तरह से पहुंचने के बाद प्रतिक्रिया को डीकोड करना, स्वीकार्य भी होगा, लेकिन मैं एसिंक्रोनस सबप्रोसेस रनिंग जीजीआईपी, प्रतिक्रिया के पाइपिंग भागों को बनाने में शामिल सभी फ्यूबर से बचने के बजाय, डीकोडेड हिस्सों को वापस पढ़ना - मैं यहां कुछ लाइब्रेरी फ़ंक्शन ढूंढ रहा हूं।
Emacs में स्पष्ट रूप से gzip बनाया गया है, क्योंकि आप gzipped फ़ाइलों को खोल सकते हैं, उन्हें संपादित कर सकते हैं, और उन्हें पारदर्शी रूप से सहेज सकते हैं। सवाल यह है कि यह हुक कहां है, और जवाब स्पष्ट नहीं है। – jrockway
धन्यवाद, जॉन। जबकि मुझे gzipped फ़ाइलों को खोलने में सक्षम होने के बारे में पता था, यह वास्तव में मेरे साथ नहीं हुआ था कि यह संबंधित हो सकता है, लेकिन जाहिर है यह है। डिस्क पर एक .gz फ़ाइल खोलने से, '* संदेश *' को देखकर, और जो कुछ भी मिला, उसके लिए मेरी elisp निर्देशिकाओं को खोजकर, मैंने कोड को कार्यान्वित किया कि 'jka-cmpr-hook.el' और/या' jka- compr.el'। ऐसा लगता है कि उन समस्याओं द्वारा प्रदान किए गए कार्यों में से एक के साथ हल करना आसान है। 'ऑटो-संपीड़न-मोड' अभी सबसे अधिक आशाजनक प्रतीत होता है। – rafl
ऑफ-विषय का प्रकार, लेकिन क्या आपको पता है कि यूआरएल-पुनर्प्राप्ति https को संभाल सकता है या नहीं? – sigjuice