curlでカスタムHTTPヘッダーを設定する
curlでAuthorization、Content-Type、AcceptなどカスタムHTTPヘッダーを追加する方法を解説。ヘッダー管理とコード変換パターンを学びましょう。
General
詳細な説明
curlでカスタムヘッダーを扱う
HTTPヘッダーはリクエストのメタデータを伝達し、認証、コンテンツネゴシエーション、APIバージョニングに不可欠です。curlでは -H フラグで任意のカスタムヘッダーを設定できます。
単一ヘッダーの設定
curl -H "Authorization: Bearer eyJhbGci..." https://api.example.com/me
複数ヘッダーの設定
-H フラグを複数指定して追加のヘッダーを設定します:
curl https://api.example.com/data \
-H "Authorization: Bearer eyJhbGci..." \
-H "Accept: application/json" \
-H "X-Request-ID: abc-123" \
-H "Cache-Control: no-cache"
よく使うヘッダー
- Content-Type: リクエストボディの形式をサーバーに伝える(
application/json、text/xml、multipart/form-data) - Accept: 希望するレスポンス形式をサーバーに伝える
- Authorization: 認証情報を伝達する(Bearerトークン、Basic認証、APIキー)
- User-Agent: リクエスト元のクライアントを識別する
- X-Custom-Header:
X-プレフィックス付きのアプリケーション固有ヘッダー
デフォルトヘッダーの削除
curlは一部のヘッダー(User-Agent など)を自動設定します。デフォルトヘッダーを削除するには、空の値で設定します:
curl -H "User-Agent:" https://api.example.com/data
ファイルからヘッダーを読み込む
複雑なヘッダー構成の場合、ファイルに保存して -H @headers.txt(curl 7.55以降)で読み込めます:
curl -H @headers.txt https://api.example.com/data
リクエストヘッダーの確認
-v を使うと、curlが実際に送信するヘッダーを確認できます:
curl -v https://api.example.com/data
> プレフィックスの行が送信リクエストヘッダー、< がレスポンスヘッダーを示します。API連携でヘッダー関連の問題をデバッグする際に非常に有用です。
APIが予期しないエラーを返す場合、最初に確認すべきはヘッダーです。Content-Typeの誤りやAuthorizationヘッダーの欠落は、400や401レスポンスの最も一般的な原因です。
ユースケース
API利用者がサードパーティサービスと連携する際に、認証トークンの送信、レスポンス形式の指定、トラッキングヘッダーの付加が必要な場合に使用します。