我正在尝试从我的elisp代码发送HTTP GET请求,并将响应的内容存储在变量中.很简单
use LWP::Simple;
my $data = get("http://some.url");
Run Code Online (Sandbox Code Playgroud)
我使用Windows 7和Emacs 24.2.
我尝试使用Emacs-Web包.这里基本上是文档中的一个例子,简化了更多:
(web-http-get
(lambda (httpc header my-data)
(message my-data))
:url "http://breqwas.net/test.txt"))
Run Code Online (Sandbox Code Playgroud)
这不起作用,我在迷你缓冲区得到这个回应:
Keyword argument http://breqwas.net/emacs.txt not one of (:host :port :extra-headers :mode :logging)
Run Code Online (Sandbox Code Playgroud)
文档中的原始代码失败的方式相同.
我也查看了http-get函数,但是"在缓冲区中获取URL" - 这不是我需要的.我不需要它在缓冲区中,我需要它在变量中.
ata*_*lor 12
我建议使用url-retrieve-synchronouslyEmacs附带的.结果放在缓冲区中,但您可以轻松地将其评估为字符串,如下所示:
(with-current-buffer (url-retrieve-synchronously "http://stackoverflow.com")
(prog1
(buffer-string)
(kill-buffer)))
Run Code Online (Sandbox Code Playgroud)