Help us understand the problem. What is going on with this article?

curlチートシート

ヘッダを見る

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

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でリソースを作成する

curl -v -X POST -d name=homeless -d email_address=homeless@example.jp -d password=qwertyui http://localhost:3000/sessions/register.json
curl -v -X POST -d email_address=homeless@example.jp -d password=qwertyui http://localhost:3000/sessions/login.json
  • おそらくサーバ内ではsessionsオブジェクトが追加される
curl -v -X POST -d name=hoge http://localhost:3000/items.json
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でリソースを更新する

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
  }
}

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

http://stackoverflow.com/questions/3860654/nested-params-with-curl

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
realglobe
「世界のすべてをWebAPI化する」ことを目指す技術ベンチャーです。
https://realglobe.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした