[コマンドプロンプト] curlコマンドの使い方 – HTTP通信を行う

curlコマンドは、コマンドプロンプトやターミナルでHTTP通信を行うためのツールです。

主にURLに対してリクエストを送信し、レスポンスを取得するために使用されます。

基本的な使い方は curl [URL] で、指定したURLにGETリクエストを送信します。

POSTリクエストを送信する場合は「curl -X POST [URL] -d "[データ]"」のように使用します。

オプションを使うことで、ヘッダーの指定やファイルのダウンロードなども可能です。

この記事でわかること
  • curlコマンドの基本的な使い方
  • HTTPリクエストの種類と送信方法
  • APIとの連携方法とデータ送信
  • ファイルのダウンロードとアップロード
  • curlのオプションによるカスタマイズ方法

目次から探す

curlコマンドとは

curlコマンドは、URLを介してデータを転送するためのコマンドラインツールです。

主にHTTP、HTTPS、FTPなどのプロトコルを使用して、リモートサーバーとの通信を行います。

curlは、さまざまなオプションを提供しており、リクエストの種類やヘッダー情報、データの送信方法などを柔軟に指定できます。

これにより、APIとの連携やファイルのダウンロード・アップロードが簡単に行えるため、開発者やシステム管理者にとって非常に便利なツールです。

特に、スクリプトや自動化されたタスクでの利用が多く、シンプルなコマンドで強力な機能を発揮します。

curlは、Windowsだけでなく、LinuxやmacOSなどの多くのプラットフォームで利用可能です。

HTTPリクエストの種類とcurlコマンド

HTTPリクエストは、クライアントがサーバーにデータを要求するための手段です。

curlコマンドを使用することで、さまざまな種類のHTTPリクエストを簡単に送信できます。

以下に、主要なリクエストの送信方法を示します。

GETリクエストの送信方法

GETリクエストは、指定したURLからデータを取得するために使用されます。

curlでGETリクエストを送信するには、以下のコマンドを使用します。

curl http://example.com

このコマンドを実行すると、指定したURLのコンテンツが表示されます。

POSTリクエストの送信方法

POSTリクエストは、サーバーにデータを送信するために使用されます。

curlでPOSTリクエストを送信するには、-dオプションを使用します。

curl -X POST -d "name=John&age=30" http://example.com/api

このコマンドでは、nameageのデータを指定したURLに送信します。

PUTリクエストの送信方法

PUTリクエストは、サーバー上のリソースを更新するために使用されます。

curlでPUTリクエストを送信するには、-X PUTオプションを使用します。

curl -X PUT -d "name=Jane" http://example.com/api/user/1

このコマンドでは、ユーザーIDが1のリソースを更新します。

DELETEリクエストの送信方法

DELETEリクエストは、サーバー上のリソースを削除するために使用されます。

curlでDELETEリクエストを送信するには、-X DELETEオプションを使用します。

curl -X DELETE http://example.com/api/user/1

このコマンドでは、ユーザーIDが1のリソースを削除します。

HEADリクエストの送信方法

HEADリクエストは、サーバーからヘッダー情報のみを取得するために使用されます。

curlでHEADリクエストを送信するには、-Iオプションを使用します。

curl -I http://example.com

このコマンドを実行すると、指定したURLのヘッダー情報が表示されます。

curlコマンドのオプション

curlコマンドは多くのオプションを提供しており、リクエストの詳細をカスタマイズできます。

以下に、主要なオプションの使い方を示します。

ヘッダー情報の指定方法

curlでリクエストにカスタムヘッダーを追加するには、-Hオプションを使用します。

例えば、Content-Typeヘッダーを指定する場合は以下のようにします。

curl -H "Content-Type: application/json" http://example.com/api

このコマンドでは、JSON形式のデータを送信することを示しています。

データの送信方法

データを送信する際には、-dオプションを使用します。

データはURLエンコードされた形式で送信されます。

以下は、JSONデータを送信する例です。

curl -X POST -d "{\"name\":\"John\", \"age\":30}" -H "Content-Type: application/json" http://example.com/api

このコマンドでは、JSON形式のデータを指定したURLにPOSTリクエストで送信します。

認証情報の指定方法

curlでは、基本認証やトークン認証などの認証情報を簡単に指定できます。

基本認証を使用する場合は、-uオプションを使用します。

curl -u username:password http://example.com/protected

このコマンドでは、指定したユーザー名とパスワードで保護されたリソースにアクセスします。

タイムアウトの設定方法

リクエストのタイムアウトを設定するには、--max-timeオプションを使用します。

以下は、タイムアウトを10秒に設定する例です。

curl --max-time 10 http://example.com

このコマンドでは、10秒以内に応答がない場合、リクエストが中止されます。

リダイレクトの扱い方

curlは、デフォルトではリダイレクトを自動的に追跡しません。

リダイレクトを追跡するには、-Lオプションを使用します。

curl -L http://example.com/redirect

このコマンドでは、リダイレクト先のURLに自動的に移動します。

レスポンスの保存方法

curlで取得したレスポンスをファイルに保存するには、-oオプションを使用します。

以下は、レスポンスをoutput.txtというファイルに保存する例です。

curl -o output.txt http://example.com

このコマンドを実行すると、指定したURLのコンテンツがoutput.txtに保存されます。

ファイルのダウンロードとアップロード

curlコマンドを使用すると、ファイルのダウンロードやアップロードが簡単に行えます。

以下に、具体的な方法を示します。

ファイルをダウンロードする方法

curlを使用してファイルをダウンロードするには、-Oオプションを使用します。

このオプションを指定すると、URLのファイル名で保存されます。

curl -O http://example.com/file.zip

このコマンドを実行すると、file.zipという名前でファイルがダウンロードされます。

ファイルをアップロードする方法

ファイルをサーバーにアップロードするには、-Fオプションを使用します。

以下は、file.txtというファイルをアップロードする例です。

curl -F "file=@file.txt" http://example.com/upload

このコマンドでは、file.txtを指定したURLにアップロードします。

@記号を使うことで、ファイルを指定できます。

複数ファイルのダウンロード方法

複数のファイルを一度にダウンロードするには、-Oオプションを複数回使用するか、URLをリストにしてループ処理を行います。

以下は、複数のファイルをダウンロードする例です。

curl -O http://example.com/file1.zip -O http://example.com/file2.zip

このコマンドを実行すると、file1.zipfile2.zipの両方がダウンロードされます。

ファイルのダウンロード進捗を表示する方法

ファイルをダウンロードする際に進捗を表示するには、-#オプションを使用します。

以下は、進捗バーを表示しながらファイルをダウンロードする例です。

curl -# -O http://example.com/largefile.zip

このコマンドを実行すると、ダウンロードの進捗がバー形式で表示されます。

これにより、ダウンロードの状況を視覚的に確認できます。

APIとの連携

curlコマンドは、REST APIとの連携に非常に便利です。

以下に、APIに対するリクエストの送信方法やデータの送信方法を示します。

REST APIにGETリクエストを送信する

REST APIにGETリクエストを送信するには、curlを使用して以下のようにコマンドを実行します。

curl -X GET http://api.example.com/users

このコマンドでは、指定したURLからユーザー情報を取得します。

レスポンスは通常、JSON形式で返されます。

REST APIにPOSTリクエストを送信する

POSTリクエストを使用して新しいリソースを作成するには、以下のようにcurlを使用します。

curl -X POST -d "name=John&age=30" http://api.example.com/users

このコマンドでは、nameageのデータを指定したURLに送信し、新しいユーザーを作成します。

JSONデータを送信する方法

JSON形式のデータをAPIに送信する場合、-HオプションでContent-Typeを指定し、-dオプションでデータを送信します。

以下はその例です。

curl -X POST -H "Content-Type: application/json" -d "{\"name\":\"John\", \"age\":30}" http://api.example.com/users

このコマンドでは、JSON形式のデータを指定したURLにPOSTリクエストで送信します。

APIの認証にcurlを使う方法

APIが認証を必要とする場合、curlを使用して認証情報を指定できます。

基本認証を使用する場合は、-uオプションを使用します。

以下はその例です。

curl -u username:password http://api.example.com/protected

このコマンドでは、指定したユーザー名とパスワードで保護されたリソースにアクセスします。

また、トークン認証を使用する場合は、ヘッダーにトークンを追加します。

curl -H "Authorization: Bearer your_token" http://api.example.com/protected

このコマンドでは、Bearerトークンを使用して認証されたリソースにアクセスします。

応用例

curlコマンドは、さまざまなシナリオで応用可能です。

以下に、いくつかの応用例を示します。

複数のリクエストを一度に送信する方法

複数のリクエストを一度に送信するには、コマンドをセミコロンで区切って実行します。

以下は、2つのGETリクエストを一度に送信する例です。

curl -X GET http://api.example.com/users; curl -X GET http://api.example.com/products

このコマンドを実行すると、ユーザー情報と製品情報の両方が取得されます。

プロキシサーバーを経由してリクエストを送信する方法

プロキシサーバーを経由してリクエストを送信するには、-xオプションを使用します。

以下は、プロキシサーバーを指定してリクエストを送信する例です。

curl -x http://proxy.example.com:8080 http://api.example.com

このコマンドでは、指定したプロキシサーバーを経由してAPIにアクセスします。

SSL証明書を無視してリクエストを送信する方法

SSL証明書の検証を無視してリクエストを送信するには、-kオプションを使用します。

以下はその例です。

curl -k https://self-signed.example.com

このコマンドを実行すると、自己署名証明書を使用しているサーバーに対してもリクエストが送信されます。

リクエストのログを保存する方法

curlのリクエストとレスポンスのログを保存するには、-vオプションを使用し、出力をファイルにリダイレクトします。

以下はその例です。

curl -v http://api.example.com > request_log.txt 2>&1

このコマンドを実行すると、リクエストの詳細とレスポンスがrequest_log.txtに保存されます。

これにより、後でリクエストの内容を確認することができます。

よくある質問

curlコマンドでエラーが出た場合の対処法は?

curlコマンドでエラーが発生した場合、以下の対処法を試みることができます。

  • エラーメッセージを確認: curlが返すエラーメッセージには、問題の手がかりが含まれています。
  • URLを確認: 指定したURLが正しいか、またはサーバーが稼働しているかを確認します。
  • ネットワーク接続を確認: インターネット接続が正常であるかを確認します。
  • オプションを見直す: 使用しているオプションが正しいか、必要なオプションが不足していないかを確認します。

curlコマンドでHTTPS通信を行うには?

curlコマンドでHTTPS通信を行うには、特別な設定は必要ありません。

単にHTTPSで始まるURLを指定するだけで、curlは自動的にHTTPSプロトコルを使用します。

以下はその例です。

curl https://api.example.com

このコマンドを実行すると、指定したHTTPS URLに対してリクエストが送信されます。

SSL証明書の検証を無視したい場合は、-kオプションを追加します。

curlコマンドでCookieを扱う方法は?

curlコマンドでCookieを扱うには、-bオプションを使用してCookieを送信し、-cオプションを使用してCookieを保存します。

以下はその例です。

  • Cookieを送信する:
curl -b "name=value" http://example.com

このコマンドでは、nameという名前のCookieを指定したURLに送信します。

  • Cookieを保存する:
curl -c cookies.txt http://example.com

このコマンドを実行すると、サーバーから受け取ったCookieがcookies.txtというファイルに保存されます。

次回以降のリクエストでこのCookieを使用することができます。

まとめ

この記事では、curlコマンドを使用してHTTP通信を行う方法や、さまざまなリクエストの送信方法、データの送信、APIとの連携、ファイルのダウンロード・アップロードの手法について詳しく解説しました。

curlは非常に強力なツールであり、特に開発やシステム管理の現場で役立つ機能が豊富です。

これを機に、curlを活用して自動化やAPIとの連携を試みてみてはいかがでしょうか。

  • URLをコピーしました!
目次から探す