メインコンテンツへスキップ
  1. ブログ/

【簡単実行】curl -d オプションの使い方|POST送信・Webhook・JSON対応まで解説

·
Linux ネットワーク コマンド Curl
目次

【簡単実行】curl -d オプションの使い方
【簡単実行】curl -d オプションの使い方

curlコマンドの -d オプションの使い方ガイド|POST送信・JSON・Webhook対応まで解説
#

初めに
#

curl コマンドは、HTTPリクエストを CLI から柔軟に送信できる非常に強力なツールです。

REST APIのテストやエンドポイントの確認に利用できることからアプリケーションエンジニアが日常的に使うツールというイメージが強いかもしれません。

しかし、インフラエンジニアにとっても curl コマンドは非常に有用であり、次のような場面で活用する事ができます。

  • HTTPステータスコードやレスポンスヘッダーの確認
  • 通信の疎通チェック
  • 簡易的な負荷テスト
  • セキュリティチェックなどの動作確認

curl には、接続制御・ヘッダー操作・出力整形など、用途に応じた多彩なオプションが用意されています。

例えば、Webフォームの送信を再現したいときや、JSON形式のデータをAPIに投げたいときなど、そうした場面では、-d オプションを使うことで柔軟に対応できます。

そこで本記事では、curl-d オプションに焦点を当て、基本的な使い方から実践的な活用方法までを、具体例とともに解説していきます。

基本的な使い方
#

curlコマンドの基本的な使い方は以下の通りです。

curl [オプション] [URL]

何もオプションを付けずにURLを指定した場合、そのURLのデータ(多くの場合HTMLコンテンツ)が標準出力に表示されます。

curl http://example.com

このように、ブラウザを使わずにコマンドラインから直接HTTPリクエストを送信し、そのレスポンスを表示できるのがcurlの基本的な使い方となります。

以下は curl の公式リポジトリとなっております。

curl/curl

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

C
39783
6932

-hでオプションを表示する
#

-h オプションは多くのコマンドで「ヘルプ表示(使い方ガイド)」として利用されています。

curlコマンドでも同様に、以下のように実行することで利用可能な全オプションの一覧を確認できます。

curl -h

以下は主なオプション一覧となっております。

ご利用の curl のバージョンやディストリビューションによって、一部のオプションが存在しない、または動作が異なる場合があります。

詳細はご利用環境の curl --help または man curl をご確認ください。

オプション ロングオプション 説明
-d --data HTTP POST データを送信する
--data-urlencode URLエンコードされたデータを送信
-H --header 任意のHTTPヘッダーを付加する
-X --request 使用するHTTPメソッドを指定
-L --location リダイレクトを追跡
-i --include レスポンスヘッダーを出力に含める
-o --output 出力をファイルに保存する
-u --user 認証情報(ユーザー名:パスワード)を送信
-k --insecure サーバー証明書の検証を無効化(HTTPS)
-s --silent プログレスバーやエラーを表示しない
-v --verbose 詳細な通信内容を表示(デバッグ用)
--compressed サーバーに圧縮レスポンスを要求
-A --user-agent User-Agent を指定
-F --form multipart/form-data形式で送信(ファイルアップロード等)
-T --upload-file ファイルをアップロード
-b --cookie Cookie を送信
-c --cookie-jar Cookie を保存
--cert クライアント証明書を指定
--key SSL/TLS用の秘密鍵ファイルを指定
--cacert 信頼するCA証明書を指定
-h --help ヘルプを表示
-V --version バージョン情報を表示

-dオプションでデータを送信する
#

-d オプションを利用する事で HTTP リクエストのボディにデータを含めて送信することができます。

このオプションを指定すると、curlは自動的に POST メソッドを使用し、指定されたデータを送信します。

-d オプションの基本的な使い方は以下の通りです。

curl -d "データ" [URL]

-dオプションの活用方法
#

フォームの動作確認
#

例えば、開発環境のログインページに対してPOSTリクエストを直接実行したい場合は以下のように実行する必要があります。

このようなログインフォーム再現や認証キー送信の操作は、開発・検証を目的とした、自身が所有または管理している環境内でのみ実行してください。
curl -d "username=devuser&password=devpass" https://dev.example.com/login

Webhookの手動トリガー
#

その他の活用例として、Webhook に対してデータを手動送信する用途でも -d オプションを利用することができます。

たとえばCIツールや通知サービスのWebhook URLに対して、任意のイベント情報をPOSTで送信することで、動作確認や処理の再現が可能です。

なお、受け付けるデータ形式やパラメータはサービスごとに異なるため、事前に仕様を確認しておくことが重要です。

curl -X POST -d "event=deploy&status=success" https://hooks.example.com/deploy

応用
#

データの形式
#

-d で送信したデータは、特別な指定がない限り application/x-www-form-urlencoded として扱われます。

この形式は、Webフォームや一部のAPIで一般的に使用されており、サーバー側で簡単にパースできる利点があります。

ファイルの内容を送信
#

長いデータや複雑なJSONなどをコマンドラインに直接書くのが難しい場合は以下の形式にてデータを送信する事ができます。

curl -d @ファイル名 [URL]

以下の例ではカレントディレクトリにある test.json の内容をそのままPOST送信しています。

curl -H "Content-Type: application/json" -d @test.json https://example.com/api/

JSONなどの構造化データを送信する場合は、サーバー側に形式を正しく伝えるために Content-Type: application/json を明示的に指定する必要があります。

Content-Type の指定が誤っている場合、サーバーがデータをJSONとして解釈できず、リクエストが失敗する可能性があります。

関連記事

【コピペ可】findコマンドでファイルの中身を検索する方法
Linux コマンド
【簡単】Linuxでディレクトリを中身ごと削除する方法
Linux コマンド Rm Rmdir
【初心者向け】AlmaLinuxでWi-Fiに接続する方法|コマンドラインで簡単設定
AlmaLinux Wi-Fi ネットワーク コマンド Nmcli
【保存版】Linuxでログアウト後も処理を継続させる方法
Linux コマンド
ログ取得にも便利!teeコマンドで標準出力を保存する方法
Linux コマンド
WHOISサーバーを指定してドメイン情報を検索する方法
Linux コマンド ドメイン