LoginSignup
83
77

More than 1 year has passed since last update.

curlチートシート

Last updated at Posted at 2015-11-30

ヘッダを見る

リクエストヘッダ、レスポンスヘッダ両方表示する

curl --verbose http://www.knet.ne.jp/~ats/z/ka/kita.htm >/dev/null

リクエストもレスポンスも通信内容をすべてダンプして表示する

curl --trace-ascii - http://google.com/
  • 引数にログを書き出すファイルを指定する
  • 引数に-を指定すると標準出力に書き出し
  • 引数に/dev/stdoutを指定している例も見かけるが、やってはいけない。Linuxで結果を更にファイルにリダイレクトしたときにおかしな動作になった(毎回先頭から上書きされていた。Macだと再現しなかった)
  • リクエストヘッダだけでなくリクエストボディの内容も確認したいときはこれを使うしかないっぽい?

from: https://superuser.com/questions/291424/how-do-you-display-post-data-with-curl

BASIC認証を行う

curl -v -u admin:password http://localhost:3000/photos/447.json

Cookieベースの認証を行う

# 認証
curl -c cookie.txt -d email_address=homeless@example.jp -d password=qwertyui http://localhost:3000/sessions/login.json

# 取得したcookieを使ってアクセス
curl -b cookie.txt http://localhost:3000/activities.json

リクエストヘッダを付与する

curl -v -X POST -H "Content-type: application/json" -d data=hoge http://localhost:3000/send.json

POSTでリソースを作成する

例としてRailsのScaffoldingで生成されるREST APIに以下のリクエストを投げると、itemリソースがひとつ作成される

curl -v -X POST --data "country=US&currency=USD&locale=en-US&locationSchema=iata&grouppricing=true&originplace=SFO-iata&destinationplace=BOS-iata&outbounddate=2016-05-23&inbounddate=2016-05-24&adults=1&children=0&infants=0&cabinclass=Economy" "http://api.skyscanner.net/apiservices/pricing/v1.0?apiKey=YOURAPIKEY"

PUTでリソースを更新する

例としてRailsのScaffoldingで生成されるREST APIに以下のリクエストを投げると、idが一致するphotoリソースが更新される

curl -v -H "Content-Type: application/json" -X PUT --data '{"id": 447, "photo":{"hidden": true}}' -u admin:password http://localhost:3000/photos/447.json

リクエストボディ

{
  "id": 447,
  "photo": {
    "hidden": true
  }
}

ハッシュ(辞書?)形式のパラメータを渡す

Request body の内容をパイプから読み込む

-d @-で標準入力からデータを読み込める

echo "{\"fuge\": 5678}" | curl -v  -H "Content-type: application/json" -d @- http://localhost:9292/items

Request body の内容をヒアドキュメントから読み込む

-d @-で標準入力からデータを読み込める

curl -v  -H "Content-type: application/json" -d @- http://localhost:9292/items <<EOF
{
  "hoge": 1234
}
EOF

通信ログを標準出力に出して、レスポンスボディはファイルに保存する

-v-oを組み合わせる

curl -v -o response.json http://localhost:9292/items

レスポンスボディの最後に改行をつける

-wオプションを使う。

curl -w '\n' http://localhost:9292/hello

参考: https://codeday.me/jp/qa/20181224/30462.html

UserAgentを指定する

-Aでユーザエージェントを指定できる

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:72.0) Gecko/20100101 Firefox/72.0" -v "http://akizukidenshi.com/catalog/g/gP-10958/" | iconv -f sjis -t utf8
83
77
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
83
77