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

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

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

GETリクエストを送信

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

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

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

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

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

フォームに情報を入れてPOSTで送信

例えば以下のようなHTMLがある時、

<form action="post.php" method="post">
  <input type="text" name="first_name">
  <input type="text" name="last_name">
  <input type="submit" value="送信">
</form>

最初のテキスト入力(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
スポンサーリンク
スポンサーリンク:

フォローする