curl
コマンドは URL を指定してサーバー上のリソースにアクセスするためのコマンドで、Web API のテストや、ファイルのダウンロードに使用できます。
昔は curl
コマンドは Linux 用のコマンドという認識でしたが、Windows 10 には標準搭載されるようになりました。
curl
は様々なプロトコルで通信できますが、主に HTTP/HTTPS が使用されます。
- 参考: curl コマンドのチートシート
curl コマンドでファイルをダウンロードする
curl コマンドはデフォルトではダウンロードしたファイルを標準出力に出力します。
-o
(小文字のオー)オプションや、-O
(大文字のオー)オプションを指定することで、ファイルに保存する ことができます。
同時に -L
オプションを指定しておくと、リダイレクトレスポンスを自動処理してくれます。
ダウンロード元と同名で保存 (-O)
別名で保存 (-o)
curl コマンドで GET/POST リクエストを送信する
REST API などのテストに curl
コマンドを利用できます。
GET リクエスト
特にオプションを指定しなければ、HTTP の GET リクエストが送信されます。
POST リクエスト
HTTP POST リクエストを送るには、-X POST (--request POST)
オプションを指定します。
ただし、-d (--data)
オプションで本体部分で送るデータ(ペイロード)を指定すると、デフォルトで POST メソッドが使用されるので、多くの場合は -X POST
は省略できます。
下記はより複雑なオプションを指定したリクエストの例です。
HTTP リクエストヘッダー (-H / --header
) で API キー(アクセストークン)を指定することはよくあります。
(おまけ)wget で POST リクエスト
wget
コマンドの場合は次のように POST リクエストを送信できます。
$ wget http://localhost:3000/books --post-data='{}' -O -