Emacs

2013-05-08 4 views
5

में एचटीपी अनुरोध मैं अपने elisp कोड से एक HTTP GET अनुरोध भेजने और एक चर में responce की सामग्री भेजने की कोशिश कर रहा हूँ।Emacs

use LWP::Simple; 
my $data = get("http://some.url"); 

मैं विंडोज 7 & Emacs 24.2 का उपयोग करता हूं।


मैंने Emacs-Web पैकेज का उपयोग करने का प्रयास किया। यहाँ मूल रूप से दस्तावेज़ से एक उदाहरण है, सरलीकृत है और भी अधिक:

Keyword argument http://breqwas.net/emacs.txt not one of (:host :port :extra-headers :mode :logging) 

प्रलेखन से कोड के मूल टुकड़ा उसी तरह विफल रहता है:

(web-http-get 
(lambda (httpc header my-data) 
    (message my-data)) 
:url "http://breqwas.net/test.txt")) 

कि काम नहीं करता, मैं minibuffer में इस प्रतिक्रिया मिल ।


मैं भी http-get समारोह को देखा, लेकिन "एक बफर में URL प्राप्त" - कि मैं क्या जरूरत नहीं है। मुझे इसे बफर में नहीं चाहिए, मुझे इसे एक चर में चाहिए।

+0

मैंने अभी मेल्पा से वेब पैकेज स्थापित किया है, तो आपका उदाहरण ठीक काम करता है। सुनिश्चित करें कि पैकेज में कोई पुराना संस्करण नहीं है जो रास्ते में आता है। –

उत्तर

12

मैं url-retrieve-synchronously का उपयोग करने की अनुशंसा करता हूं जो Emacs के साथ शामिल है। परिणाम एक बफर में रखे जाते हैं, लेकिन आप इसे आसानी से एक स्ट्रिंग के रूप में मूल्यांकन कर सकते हैं:

(with-current-buffer (url-retrieve-synchronously "http://stackoverflow.com") 
    (prog1 
     (buffer-string) 
    (kill-buffer))) 
+0

यह चीजों को करने का एक पागल पागल तरीका दिखता है, हुह? –

+1

बफर में डेटा के साथ काम करने के emacs तरीके को गले लगाओ और यह इतना बुरा नहीं है :) – ataylor

+0

बीटीडब्ल्यू, वह चीज HTTP responce –