個人的によく使うcurlコマンドのオプションをまとめました
認証情報の付与
# basic認証のかかったサイトにアクセス(-uもしくは--user)
$ curl --user USER_ID:PASSWORD http://www.example.com/
# NTLM認証もしくはDigest認証のかかったサイトにアクセス(--anyauth)
$ curl --anyauth --user USERID:PASSWORD http://www.example.com/
データの付与
# フォームの送信(-dもしくは--data)
$ curl --data FORM_ID=VALUE http://www.example.com/
# フォームからファイルのアップロード(-Fもしくは--form)
$ curl --form FORM_ID=@example.png http://www.example.com/
# User-Agentを付与(-A)
$ curl -A "USER_AGENT" http://www.example.com
# クッキーの送信(-b)、保存(-c)
$ curl -b cookie.txt -c cookie.txt http://www.example.com/
# HTTPヘッダーの指定(-headもしくは--head)
$ curl -H "KEY: VALUE" http://www.example.com/
# HTTPBodyにパラメーターを設定してPOST、ファイルで指定する場合は@ファイル名とする
$ curl -d "KEY=VALUE"
$ curl -d @FILE_NAME
動作の指定
# HTTPメソッドの指定(-X)
$ curl -X PUT http://www.example.com/
# SSLのエラーを無視して処理を継続(-k)
# (サーバー側証明書が不正、クライアント側のルート証明書が不正など)
$ curl -k http://www.example.com/
# リダイレクトさせる(-L)
$ curl -L http://www.example.com/
情報確認(デバッグ系)
# HTTPレスポンスヘッダーの取得(-I)
$ curl -I http://www.example.com/
# 詳細をログ出力(-vもしくは--verbose)
$ curl -v http://www.example.com/
# 進捗やエラーを表示しない(-sもしくは--silent)
# (curlの結果をパイプで次のコマンドに渡す際に、通信時間のデータなどが邪魔にならないようにする)
$ curl -s http://www.example.com/