by shigemk2

当面は技術的なことしか書かない

url-http-create-request Multibyte text in HTTP request

25.3.2 で死ぬやつ。url-retrieveで日本語データが入ったJSONをPOSTすると死ぬ。

url-http-create-request: Multibyte text in HTTP request

(defun url-http-post (url args)
  "Send ARGS to URL as a POST request."
  (let (
        (response-string nil)
        (url-request-method "POST")
        (url-request-extra-headers
         '(("Content-Type" . "application/json")))
        (url-request-data
         (json-encode args)))
    (switch-to-buffer
     (url-retrieve-synchronously url))
    (goto-char (point-min))
    (re-search-forward "\n\n")
    (setq response-string
          (buffer-substring-no-properties (point) (point-max)))
    (kill-buffer (current-buffer))
    response-string))
(url-http-post "http://httpbin.org/post"  '(("hoge" . "fuga") ("piyo" . "鍵")))

bug#23750: 25.0.95; bug in url-retrieve or json.el