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/jsontext/xmlmultipart/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利用者がサードパーティサービスと連携する際に、認証トークンの送信、レスポンス形式の指定、トラッキングヘッダーの付加が必要な場合に使用します。

Try It — Curl to Code Converter

フルツールを開く