を使用するより高いレベルの代替手段ですurl-http-end-of-headers
が、同様に文書化されていませんurl-insert-file-contents
:
(with-temp-buffer
(url-insert-file-contents
"https://api.stackexchange.com/2.2/questions/12464?site=emacs")
(json-parse-buffer :object-type 'alist))
または同等に、ネイティブJSONサポートでコンパイルされたEmacs 27より前:
(require 'json)
(with-temp-buffer
(url-insert-file-contents
"https://api.stackexchange.com/2.2/questions/12464?site=emacs")
(let ((json-false :false))
(json-read)))
これらの結果:
((items .
[((tags .
["url" "http"])
(owner
(reputation . 10741)
(user_id . 227)
(user_type . "registered")
(accept_rate . 89)
(profile_image . "https://i.stack.imgur.com/ebO5J.jpg?s=128&g=1")
(display_name . "lunaryorn")
(link . "https://emacs.stackexchange.com/users/227/lunaryorn"))
(is_answered . t)
(view_count . 867)
(accepted_answer_id . 29798)
(answer_count . 3)
(score . 4)
(last_activity_date . 1517363132)
(creation_date . 1431861037)
(question_id . 12464)
(link . "/emacs/12464/go-to-body-after-url-retrieve-synchronously")
(title . "Go to body after url-retrieve-synchronously"))])
(has_more . :false)
(quota_max . 300)
(quota_remaining . 276))
この関数はurl-insert-file-contents
、より良い文書化機能をラップurl-insert-buffer-contents
し、url-insert
したがって、以下のグッズが付属しています:
- デフォルトで自動ロードされます。
- 少なくともEmacs 21から存在しています。
- による単純なHTTP応答エラー処理
url-http-response-status
。
- データをデコードします。
FWIW、それはによって使用されるという保証も付いていlisp/emacs-lisp/package.el
ます。
url-http-end-of-headers
このアプローチよりも望ましいと思います。私は本当にurl-http-goto-body
そのようなものを望んでいた:(