cURLを使用してHTTPヘッダーを送信する方法:例を交えた完全ガイド
この包括的なガイドで、cURL を使った HTTP ヘッダーの送受信をマスターしましょう。例、カスタムヘッダー、トラブルシューティングのヒントなどを紹介します。
cURLでHTTPヘッダーを送信することは、APIやウェブサービスを扱う誰もが身につけるべき基本的なスキルです。HTTPヘッダーはコンテンツタイプ、認可情報など、リクエストに関する重要な情報を伝えます。HTTPリクエストを作成するための強力なコマンドラインツールであるcURLは、これらのヘッダーをカスタマイズして簡単に送信できます。本ガイドでは、cURLを使用したHTTPヘッダー送信プロセスについて、実践的な例を含めて説明します。

前提条件#
例を見る前に、システムにcURLがインストールされていることを確認してください。以下のコマンドを実行することでインストール状況を確認できます:
curl --version
インストールされていない場合は、公式cURLウェブサイトからダウンロードできます。
基本的なcURL構文#
HTTPリクエストをcURLで送信する基本的な構文は次のとおりです:
curl [options] [URL]
HTTPヘッダーをリクエストに含めるには、-Hまたは—headerオプションに続いてヘッダー情報を指定して使用できます。
例1:カスタムヘッダー付きGETリクエストを送信する#
カスタム ヘッダーを含む、仮説的な API への単純な GET リクエストから始めましょう。 API キーに「Authorization」ヘッダーを含めたいとします。
curl -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/resource
YOUR_API_KEYを実際のAPIキーに置き換えてください。
例2:JSONデータを含むPOSTリクエストの送信#
この例では、JSONペイロードとカスタムコンテンツタイプヘッダーを含むPOSTリクエストを送信します。
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "email": "[email protected]"}' https://api.example.com/users
このコマンドはリクエストメソッドをPOST(-X POST)として指定し、コンテンツタイプをJSON(-H “Content-Type: application/json”)に設定し、-dでJSONデータを含めます。
例 3: 複数のヘッダーの設定#
単一のcURLリクエストに複数のヘッダーを含めることができます。ここでは「Authorization」と「User-Agent」の両方のヘッダーを含むリクエストを送信しています。
curl -H "Authorization: Bearer YOUR_API_KEY" -H "User-Agent: MyClient/1.0" https://api.example.com/resource
例4:クッキーの送信#
リクエストでクッキーを送信するには、-bまたは—cookieオプションに続いてクッキーデータを指定して使用します。
curl -b "session=12345; preferences=darkmode" https://api.example.com/dashboard
この例では、「セッション」と「設定」という 2 つの Cookie を送信します。
例5:リダイレクトに従う#
デフォルトではcURLはHTTPリダイレクトに従いません。リダイレクト追従を有効にするには、-Lまたは—locationオプションを使用してください。
curl -L https://example.com
このコマンドはリダイレクトに従い、最終的なページコンテンツを表示します。
例6:カスタムUser-Agentの送信#
カスタムUser-Agentヘッダーを設定して、リクエストを識別できます。
curl -H "User-Agent: MyCustomApp/1.0" https://api.example.com/resource
カスタムUser-Agentヘッダーは、特定のユーザーエージェントが必要なAPIと相互作用する場合に便利です。
例 7: データなしのリクエスト ヘッダーの送信#
リクエストボディなしでヘッダーを送信する必要がある場合は、-Iまたは—headオプションを使用できます。
curl -I https://api.example.com/resource
このコマンドはHEADリクエストを送信し、ヘッダーのみを取得して実際のコンテンツは取得しません。
例8:基本認証の送信#
HTTP基本認証の認証情報を送信するには、ユーザー名とパスワードをBase64でエンコードした「Authorization」ヘッダーを含めることができます。
curl -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" https://api.example.com/resource
BASE64_ENCODED_CREDENTIALS を Base64 でエンコードされたユーザー名とパスワード (例: ユーザー名:パスワード) に置き換えます。
例9:デバッグと詳細モード#
問題のトラブルシューティングを行ったり、HTTP 要求と応答を検査したりする場合は、-v または –verbose オプションを使用して cURL の冗長モードを使用できます。
curl -v https://api.example.com/resource
これはヘッダーを含む、リクエストとレスポンスの詳細情報を表示します。
cURL を使用して HTTP ヘッダーを送信することは、Web サービスや API を操作するための重要なスキルです。このガイドで提供されている例を使用すると、リクエストのカスタマイズ、認証の処理、Cookie の送信などを行うことができます。 cURL の機能に慣れると、さまざまな Web サービスを効果的に操作できるようになります。
