curl を使って Web API をテストする(2)

前回は Web APIをテストする時によく使う curl のオプションについて解説しました。

* [curl を使って Web API をテストする(1)](http://lovepeers.org/2014/06/30/curl-web-api/)

今回はよく使うシチュエーションをいくつか挙げて、curl の具体的な使い方を解説します。

## GETリクエストを送信
一番基本的なGETリクエスト送信。

リダイレクトが発生することを考慮して、”-L” オプションを付けておくと良いでしょう。

curl -L http://api.examples.com/

レスポンスヘッダも見たい時は、”-i” オプションを付けます。

curl -i -L http://api.examples.com/

## フォームに情報を入れてPOSTで送信
例えば以下のようなHTMLがある時、




最初のテキスト入力(first_name)に「ふが」、2番目のテキスト入力(last_name)に「ほげ男」と入れた状態で、curlでフォームを送信するのは、以下のようになります。

curl -d first_name=ふが -d last_name=ほげ男 http://api.examples/post.php

ここでも、必要に応じて “-L” や “-i” オプションを付けましょう。

## ログインフォームにユーザ名、パスワードを入力し、送られて来たCookieを保存
サーバから (Set-Cookie レスポンスヘッダで) Cookie が送られて来た時、-c オプションで指定したファイルに Cookie を保存することが出来ます。

ログインフォームでユーザ名、パスワードを入力し、認証に成功したら Cookie を送って来るサイトでは、以下のようにして Cookie を保存しておきます。

curl -d username=hogehoge -d password=fugafuga -c cookie.jar http://api.examples.com/login.php

## Cookieを送信して認証後のページにアクセス
Cookie をサーバに送る時は、-b オプションを使います。-c オプションでサーバから送られて来た Cookie を保存している時は、-b オプションにそのファイルを指定します。

ログイン時に送られて来た Cookie を cookie.jar というファイルに保存している時、認証後のページにアクセスする時は -b cookie.jar を付けます。

curl -b cookie.jar http://api.examples.com/top.php

## JSONデータをPOSTする
POSTで JSON データを送信する時は、ふつうの POST と同様に -d オプションを使います。

リクエストヘッダに “Content-Type: application/json” を付けないとサーバが JSONと認識しない時は、-Hオプションで指定します。

curl -H “Content-Type: application/json” -d ‘{“root”:[{“title”:”テスト1″, “url”: “http://examples.com/test1”}, {“title”:”テスト2″, “url”:”http://examples.jp/test2″}]}’ http://api.examples.com/postjson.php

スポンサーリンク
スポンサーリンク:

フォローする