Emacsでhttp.elを使ってGET・POST通信のテストを行う
2017/01/31
こんにちは、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リクエストは、保存してまとめておけば再利用できて便利ですね。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク