RESTなAPIなんか作っていると、いちいちテストするのでブラウザとか使うのはとっても面倒。そこで、コマンドのcurlがとても便利なんです。
オプションの-vと-bと-cに-dを組合せて、アクセスをするとテストなどで使えます。
本家をみてびっくりしたけど、実はかなり色々できるコマンドだった。恐るべし。そして本名が「cURL」と初めて知った。
自動で色々やりたい場合は、こちらが参考になる。(もちフルEnglish)
http://curl.haxx.se/docs/httpscripting.html
URLで便利なファイル名の展開
使い方はこんな感じ。
curl "http://hogehoge.com/[1-5].jpg"
以下、展開についてのパターン
[1-5].jpg
1.jpg, 2.jpg・・・と連続取得
{1,3,5}.jpg
1.jpg, 3.jpg・・・と指定したもので取得
{a,b}{1,2}.jpg
a1.jpg, a2.jpg, b1.jpgと組合せてくれる
オプションについて
ファイルへ出力
-O URL
ファイル名指定の出力
-o ファイル名 URL
リダイレクトに追随
-L URL
cookieの保存
-c cookie.txt
cookieの送信
-b cookie.txt
httpヘッダーの追加・変更
-H "key: value"
フォーム送信
-d name=value
複数送りたい場合は、上記を繰り返す
ヘッダー取得
-I URL
サーバとのやり取りを表示する
-v URL
使用例
Redmineのチケットを更新している例
http://www.r-labs.org/projects/r-labs/wiki/Rest_api_with_curl
$ curl -v -H "Content-Type: application/json" -X PUT --data "@388.json" -u login:password http://redmine/issues/388.json
以下のファイルを作っておく
{
"issue": {
"subject": "subject123",
"notes": "Changing the subject"
}
}
ネタ元URL
WindowsAzureにてRestAPIを叩くのに、cURLを使っている例も発見。
http://troushoo.blog.fc2.com/blog-entry-38.html