Request.el似乎是为了轻松查询返回json响应的Web服务而构建的。
我想用它来获取从查询返回http://ipinfo.io
的城市和州的结果如果从命令行发出以下内容:
curl https://ipinfo.io
我回过头来看:
{
"ip": "24.xxx.xxx.xxx",
"hostname": "cpe-xx-xxx-xxx-x.xxx.xxx.xx.com",
"city": "Brooklyn",
"region": "New York",
"country": "US",
"loc": "40.6406,-74.0169",
"org": "AS12271 Time Warner Cable Internet LLC",
"postal": "11220"
}%
我想撤出" city"和"州"将值作为字符串放入单个变量中,例如:
(setq my-location "Brooklyn, NY")
虽然resolve.el页面包含大量文档,但我不是程序员,我根本不了解如何获取所需信息。我非常确定自己走上了正确的道路,但我只是缺乏知道如何到达我想去的地方。
答案 0 :(得分:1)
这样的事可能有用:
(require 'request) (request "https://ipinfo.io" :parser 'json-read :success (cl-function (lambda (&key data &allow-other-keys) (message "I sent: %S" (assoc-default 'args data)) (message "Data is %s" data ) (message "Result is %s, %s" (assoc-default 'city data) (assoc-default 'region data)))))
(未经测试,因为我有内部IP地址,因此无法访问城市/地区数据。)