Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
curl
『curl』はコマンドラインから HTTP/HTTPS リクエストを送受信するツールです。Web API の呼び出し・ファイルのダウンロード・フォームデータの送信など幅広い用途に使えます。
構文
# 基本的な GET リクエスト
curl URL
# ファイルに保存
curl -o 出力ファイル URL
# URL と同じファイル名で保存
curl -O URL
# リダイレクトに追従する
curl -L URL
# POST リクエスト(フォームデータ)
curl -X POST -d "key=value&key2=value2" URL
# POST リクエスト(JSON)
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL
# ヘッダーを追加
curl -H "Authorization: Bearer トークン" URL
オプション一覧
| オプション | 概要 |
|---|---|
| -o ファイル | レスポンスボディを指定ファイルに保存します。 |
| -O | URL のファイル名でカレントディレクトリに保存します。 |
| -L | リダイレクト(301/302)に追従します。 |
| -s | 進捗やエラーを表示しないサイレントモードです。 |
| -S | -s と組み合わせてエラーだけ表示します。 |
| -w "%{http_code}" | HTTPステータスコードなどのフォーマット出力を追加します。 |
| -X メソッド | HTTP メソッドを指定します(GET, POST, PUT, DELETE 等)。 |
| -H "ヘッダー" | リクエストヘッダーを追加します。 |
| -d "データ" | POST のボディデータを指定します。 |
| -F "field=value" | multipart/form-data 形式でデータを送ります。 |
| -u ユーザー:パスワード | Basic 認証の認証情報を指定します。 |
| -I | レスポンスヘッダーのみ取得します(HEAD リクエスト)。 |
| -v | 詳細なリクエスト/レスポンスを表示します(デバッグ用)。 |
| --max-time 秒 | タイムアウト時間を指定します。 |
| -k | SSL 証明書の検証をスキップします(開発環境向け)。 |
サンプルコード
シンプルな GET リクエストを送信します。レスポンスボディが標準出力に表示されます。
curl https://api.example.com/users/1
{"id":1,"name":"Alice","email":"alice@example.com"}
HTTP ステータスコードだけを確認します。『-s』でサイレントモード、『-o /dev/null』でボディを破棄します。
curl -s -o /dev/null -w "%{http_code}" https://example.com
200
レスポンスヘッダーを確認します(『-I』で HEAD リクエスト)。
curl -I https://example.com
HTTP/2 200 content-type: text/html; charset=UTF-8 content-length: 12345 last-modified: Thu, 01 Jan 2026 00:00:00 GMT
JSON データを POST で送信します。Bearer トークンによる認証付きです。
curl -s -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer my_token_here" \
-d '{"name":"Alice","age":30}' \
https://api.example.com/users
{"id":42,"name":"Alice","age":30,"created_at":"2026-03-06"}
ファイルをダウンロードします。『-L』でリダイレクトに追従し、『-sS』でエラーだけ表示します。
curl -sSL -o /tmp/file.tar.gz https://example.com/release.tar.gz
ファイルをアップロードします(multipart/form-data)。
curl -F "file=@report.pdf" -F "title=レポート" https://example.com/upload
Basic 認証を使ってアクセスします。
curl -u admin:password https://example.com/admin/api
レスポンスを変数に格納して処理します。
response=$(curl -s https://api.example.com/users/1) echo "$response" | grep "name"
"name": "Alice",
概要
スクリプトで curl を使うときは -s(サイレント)と -S(エラーだけ表示)を組み合わせた -sS オプションが定番です。また -w "%{http_code}" でステータスコードを確認し、200 以外はエラー処理するパターンも頻出です。
-k(SSL検証スキップ)は開発環境のみで使用し、本番環境では使わないでください。ファイルのダウンロードには wget も便利です。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。