curlチートシート

curlチートシート

-XでHTTPメソッドを指定します。指定するHTTPメソッドは以下の通りです。

HTTPメソッド
GET
PUT
POST
DELETE
PATCH

-dオプションに続けて文字列を指定すると、リクエストボディを渡せます。リクエストボディは文字列で渡ります。

-Iオプションでレスポンスヘッダを表示します。

-iオプションでレスポンスヘッダ、レスポンスボディを表示します。

-Hオプションでリクエストヘッダを渡します。以下は、Host:xxx.execute-api.ap-northeast-1.amazonaws.comを渡しています。

複数のリクエストヘッダを渡す場合は-H 'xxx: yyy' -H 'aaa: bbb'というように複数の-Hオプションを使用します。

curlでリクエストヘッダを渡す

リクエストヘッダを渡すには、-H 'Bearer hogehoge'というように-Hオプションを使用します。

Bearer認証:「https://qiita.com/h_tyokinuhata/items/ab8e0337085997be04b1

curlでベンチマーク

curlで-wオプションを使用してベンチマークテストができます。

-o /dev/nullでレスポンスボディを非表示にします。

使用できる変数は以下です。(もっといっぱいあります)

変数 意味
time_total ダウンロードが完了するまでの時間(秒)
time_starttransfer レスポンスの最初のバイトを受け取るまでの時間(秒)

レスポンスボディの末尾に改行を入れる

curlコマンドで末尾に改行コードを入れるには-w "\n"とすれば改行コードが入って見やすくなります。

複数のクエリ文字列を指定する

https://example.com/?hoge1=fuga1\&hoge2=fuga2というように複数クエリ文字列を指定する場合、&を\マークエスケープしてあげる必要があります。

curlでリクエストヘッダ未指定にするとContent-Type:application/x-www-form-urlencodedになる

curlコマンドでリクエストヘッダを指定しない場合、Content-Type:application/x-www-form-urlencodedになってしまいます。

リクエストヘッダのContent-Typeがapplication/x-www-form-urlencodedになっているのが確認できると思います。

こちらを防ぐには-H 'ContentType:xxx'と明示的にしているする必要があります。

HTTP1.0,HTTP1.1,HTTP2.0を指定する

curl -0オプションでHTTP1.0でリクエストを送ります。

curl –http1.1オプションでHTTP1.1でリクエストを送ります。

curl –http2オプションでHTTP2.0でリクエストを送ります。

リクエストボディをヒアドキュメントで指定する(Linux)

リクエストボディは-dオプションで指定します。続けて、@-とEOFでリクエストボディをヒアドキュメントで指定することが出来ます。

takahashi-h5$ curl -X POST https://xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com/v1/get -d @- <<EOF
> {
> key:value
> }
> EOF

view raw
gistfile1.txt
hosted with ❤ by GitHub

プロキシを使用しないでcurlを叩く

プロキシが邪魔をしてcurlコマンドが叩けない場合があります。そういった場合は--noproxyオプションでプロキシを使用しないホストを指定しておきます。

Windows10のcurlでhttps://~~にcurlする

https://superuser.com/questions/442793/why-cant-curl-properly-verify-a-certificate-on-windows

どうもWindows10のcurlではhttpsプロトコル対応していないのかと思ったのですが、URLをダブルクォートで囲むと正常動作します。

SSLクライアント認証

curlでSSLクライアント認証する場合は.pemファイルを指定します。.pfxファイルは対応していないようです。

pfx形式の場合は以下のopensslコマンドでpem形式に変換する必要があります。

URLエンコード

Windows10のcurlコマンドでクエリパラメータをエンコードする例です。

-Gと--data-urlencodeオプションを使用します。

ハイフンなどもURLエンコードする必要があります。

Chrome開発者ツールからcurlコマンドをコピーする

Chromeで適当なURLにアクセスし、Chrome開発者ツールのネットワークタブからcurlコマンド(win,bashともに)コピーすることが出来ます。

curlチートシート

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA