2021年9月13日月曜日

emacs で HTTP リクエストを送信してみた

emacs で HTTP リクエストを送信してみた

概要

emacs 上で curl 的なことがしたい場合は request パッケージが使えます

環境

  • macOS 11.5.2
  • emacs 27.2
  • request 20210816.200

request のインストール

  • M-x package-list-packages
  • request を選択してインストール

.emacs 編集

動作確認は .emacs にリクエストを書いて行います
あとはバッファで eval-buffer します

GET

レスポンスは data に入ってきます
json-read を使うことで JSON レスポンスをパースしてくれます
assoc-default で指定したキー (params) の値を取得して表示しています

(require 'request)
(request "https://kaka-request-dumper.herokuapp.com/"
  :params '(("key" . "value") ("key2" . "value2"))
  :parser 'json-read
  :success (cl-function
            (lambda (&key data &allow-other-keys)
              (message "I sent: %S" (assoc-default 'params data)))))

POST

JSON を POST する場合は headers を設定すれば OK です

(require 'request)
(request "https://kaka-request-dumper.herokuapp.com/"
  :type "POST"
  :headers '(("Content-Type" . "application/json"))
  :data (json-encode '(("name" . "hawksnowlog") ("age" . "20")))
  :parser 'json-read
  :success (cl-function
            (lambda (&key data &allow-other-keys)
              (message "I sent: %S" (assoc-default 'body data)))))

最後に

外部からデータを取得したりするときに使えます
SDK などのパッケージを作るときには重宝するかもしれません

参考サイト

0 件のコメント:

コメントを投稿