こんにちは、okutani(@okutani_t)です。最近、サーバー通信周りをいじる機会があり、手軽にHTTP通信を行うツールをいろいろと調べていました。
私は普段Emacsを使っているので、Emacs上でHTTP通信が確認できたら便利だなー、と思っていたらありました。その名も「http.el」という代物。
HTTPリクエストをちょろっと書いて「C-c C-c」するだけで、とってもかんたんにGET・POSTリクエストができる便利な拡張機能です。
Emacsを使っている人で知らない人はいないであろう、るびきち先生の日刊Emacsで紹介されているパッケージですので間違いないはないですね。ちなみに、るびきち先生のhttp.el記事は下記リンクです。
上記の記事もぜひ参考にしてみてください。
では、さっそくhttp.elを使ってGET・POST通信を行ってみましょう。
スポンサーリンク
http.elのインストール
http.elはmelpaにあります。package.elを利用してインストールします。
M-x package-list-packages
httpをインクリメンタルサーチ、「i」キー→「x」キーでインストール。
これでhttp.elがインストールできました。
http.elの利用方法
では、http.elの使い方をみていきましょう。今回は「httpbin.org」という、HTTP通信を手軽にチェックできる便利なサイトを利用していきます。
かんたんな使い方は、下記のhttpbin.orgで確認してみると良いです。
LINKhttpbin(1): HTTP Client Testing Service
今回、GET・POST通信先をhttpbin.orgに設定して利用します。httpbin.orgについての説明はここでは特に行いませんので、興味がある人は適宜ぐぐってみてください。
ではEmacsで適当にバッファを開き、「M-x http-mode」としてhttp modeにしておきましょう。これでhttp.elを利用する準備は完了です。
まずはGETリクエストを送信してみます。
GET通信を行う方法
下記をバッファに記述します。
# -*- http -*- # はコメント # GETリクエストは単純に1行でOK # ## 自分のIPアドレスが返ってくるリクエスト GET https://httpbin.org/ip
一行目の「# -*- http -*-」は、次開いたとき自動でhttp-modeにしてくれる記述です。
「GET https://httpbin.org/ip」では、httpbin.org/ipに対してGET通信を実行しています。httpbin.orgサイトで確認すると分かりますが、末尾にipをつけることで、自分自身のIPアドレスがreturnされます。
では、「C-c C-c」としてGETリクエストを送ってみましょう。
GET実行結果
実行すると、次のように結果が返ってきます。
無事に自分自身のIPアドレスが返ってきていることが確認できました。かなりお手軽にGET通信を行うことができましたね。
次は、POST通信を試してみましょう。
POST通信を行う
POST通信の場合は、下記のとおりバッファに記述します。
# -*- http -*- # ## ヘッダーをつけてPOSTリクエスト # ヘッダとデータの間には空行を入れる POST https://httpbin.org/post?val=key User-Agent: Emacs24 Content-Type: application/json { "hoge": "piyo" }
上記ではContent-Typeにjsonを指定、hoge・piyoをPOSTで送っています。
では「C-c C-c」で実行してみましょう。
POST実行結果
POST通信の結果を確認してみます。
無事にjson形式でデータを受け取ることができました。
これでわざわざPHPやruby等でhttp通信のコードを書いて確かめる、なんてことをしなくて済みますね。ぜひ、HTTP通信を行うときの参考にしてください。
まとめ
http.elでちょっとしたHTTP通信の確認をスムーズに行うことができました。
バッファに記述したHTTPリクエストは、保存してまとめておけば再利用できて便利ですね。