對於Emacs擴展,我想通過HTTP檢索數據。我並不是特別喜歡將wget
,curl
或w3m
這樣的東西解決出來的想法,所以我使用了url-retrieve
函數。使用url-retrieve解碼gzip-ed響應實體
我正在與之通話的一個HTTP服務器恰好忽略了Accept-Encoding
標頭,並堅持總是通過Content-Encoding: gzip
發送它的數據。
因此,並且url-retrieve
不會自動解碼響應主體,緩衝區url-retrieve
將呈現我將包含二進制gzip數據。
我正在尋找一種方法來解碼響應正文,最好是塊大塊,隨着數據到達。有沒有辦法指導url-retrieve
爲我做這個?
一旦完全到達解碼響應,也是可以接受的,但我寧願避免創建一個運行gzip的異步子進程所涉及的所有fubar,管道響應的部分,以及回到解碼塊 - 我會在這裏尋找一些庫函數。
Emacs顯然內置了gzip,因爲您可以打開gzip文件,編輯它們並透明地保存它們。問題是......這個鉤子在哪裏,答案並不明顯。 – jrockway 2010-10-06 16:53:21
謝謝,約翰。雖然我意識到能夠打開gzip文件,但我確實沒有想到這可能是相關的,但顯然是這樣。在磁盤上打開一個.gz文件,查看'* Messages *',然後在我的elisp目錄中搜索我得到的任何東西,我找到了代碼實現了'jka-cmpr-hook.el'和/或'jka- compr.el'。這些問題似乎很容易通過這些功能提供的功能解決。 「自動壓縮模式」似乎最有希望。 – rafl 2010-10-07 01:32:51
排序的話題,但你碰巧知道url-retrieve是否可以處理https? – sigjuice 2010-10-08 23:02:01