やりたかったこと
コマンドラインからHTTPリクエストを送りたかった。 curlを使うとAPIのテストやファイルのダウンロードができる。
環境
- Linux / Mac / Windows(Git Bash)
基本的な使い方
GETリクエスト
curl https://example.com
curl -s https://example.com # 進捗を非表示
curl -o output.html https://example.com # ファイルに保存
POSTリクエスト
curl -X POST https://api.example.com/data \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
ヘッダーを確認する
curl -I https://example.com # ヘッダーのみ表示
curl -v https://example.com # 詳細表示
認証付きリクエスト
curl -H "Authorization: Bearer トークン" https://api.example.com
APIテストでよく使うオプション
-X GET/POST/PUT/DELETE # HTTPメソッドを指定
-H "ヘッダー名: 値" # ヘッダーを追加
-d "データ" # リクエストボディ
-o ファイル名 # レスポンスをファイルに保存
-s # サイレントモード
-v # 詳細表示
-L # リダイレクトに従う
ハマったポイント
- Windowsのコマンドプロンプトではシングルクォートが使えない。Git Bashを使う
-sと-oを組み合わせると進捗なしでファイルに保存できる- JSONを整形して表示するには
| python3 -m json.toolをパイプで繋ぐ