9

elisp コードから HTTP GET 要求を送信し、応答の内容を変数に格納しようとしています。単純な

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

Windows 7 と Emacs 24.2 を使用しています。


Emacs-Webパッケージを使ってみました。これは基本的にドキュメントの例であり、さらに単純化されています。

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

それは機能しません。ミニバッファーで次の応答を受け取ります。

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

ドキュメントの元のコードは同じように失敗します。


http-get関数も見ましたが、「バッファー内の URL を取得する」 - それは私が必要とするものではありません。バッファには必要ありません。変数に必要です。

4

1 に答える 1

14

url-retrieve-synchronouslyEmacs に含まれているものを使用することをお勧めします。結果はバッファに配置されますが、次のように文字列として簡単に評価できます。

(with-current-buffer (url-retrieve-synchronously "http://stackoverflow.com")
  (prog1
      (buffer-string)
    (kill-buffer)))
于 2013-05-08T18:13:00.013 に答える