cURL で POST リクエストを送信する方法

cURL で POST リクエストを送信する方法

cURL は、HTTP、HTTPS、FTP などのさまざまなネットワーク プロトコル間でシームレスなデータ転送を行うために設計された多用途のコマンド ライン ユーティリティです。すべての主要なオペレーティング システムで使用できる cURL は、コマンド ラインから HTTP リクエストを送信するための標準ツールになっています。このクロスプラットフォーム ユーティリティは、HTTP、HTTPS、FTP、IMAP などのプロトコルをサポートしているため、API にリクエストを送信したり、Web サイトをスクレイピングしたりすることが簡単にできます。cURL は幅広く利用でき、プロトコルもサポートされているため、REST API ドキュメントでは、コマンド ラインから直接 API 呼び出しをテストする簡単な方法としてよく参照されます。

このチュートリアルでは、cURL を使用して POST リクエストを実行し、簡単なコマンドライン指示を通じてサーバーとの効率的な通信を可能にする方法について説明します。

POST リクエストとは何ですか?

POST リクエストは、サーバーにデータを送信するために使用される HTTP メソッドであり、最も一般的な HTTP メソッドの 1 つです。データが URL に含まれる GET リクエストとは異なり、POST リクエストはリクエスト本体でデータを送信します。これにより、目立たないデータ転送が可能になり、ブラウザーによって GET リクエストに課せられる URL の長さ制限を回避できます。

POST リクエストは、フォームの送信、ファイルのアップロード、API への JSON データの送信によく使用されます。データはリクエスト本文に保存されるため、ブラウザの履歴には表示されません。また、GET リクエストとは異なり、POST リクエストは通常、ブラウザによってキャッシュされません。

cURL POSTリクエストの実用的な使用例

cURL POST リクエストは、次のようなさまざまなシナリオで広く使用されています。

  • REST API のテスト– 開発者は cURL を使用して、アプリケーションに実装する前に API エンドポイントをすばやくテストします。
  • フォーム送信の自動化– cURL を使用すると、Web フォームとのやり取りを自動化し、手動入力なしでデータを送信できます。
  • ファイルのアップロード– 多くの API では POST リクエストを使用したファイルのアップロードが許可されているため、cURL はこのプロセスを自動化するための効果的なツールとなります。
  • 認証システムとのやり取り– 開発者は cURL を使用してユーザーを認証し、API トークンまたは資格情報を使用して保護されたリソースにアクセスできます。
  • データ スクレイピングと統合– cURL の POST リクエスト機能を使用すると、さまざまなオンライン ソースからのデータの抽出と統合が簡素化されます。

cURL で POST リクエストを実行する

POST リクエストに cURL を使用するには、システムにインストールされていることを確認してください。まだインストールしていない場合は、cURL の設定に関するガイドを参照してください。以下に、重要な cURL オプションをまとめた参照表を示します。

ショートフラグ

ロングフラグ

議論

説明

-X

- リクエスト

(POST リクエストの場合は「POST」を使用します)

リクエストのHTTPメソッドを定義します

-b

- クッキー

リクエストでクッキーを送信します

-c

--クッキージャー

受信したクッキーをファイルに保存します

-d

- データ

POSTリクエストでデータを送信します

-f

- 失敗

サーバーエラー時にサイレント障害を確実に防止

-F

- 形状

<名前=コンテンツ>

フォームデータを送信します (application/x-www-form-urlencoded)

-H

- ヘッダ

ヘッダー/@ファイル

カスタムHTTPヘッダーを含む

-私

- 含む

レスポンスにHTTPヘッダーを表示する

-l

- 頭

ヘッダーのみ取得

-k

--安全でない

SSL検証をバイパスする

-L

- 位置

リダイレクトに従う (3XX)

-o

- 出力

出力を指定されたファイルに保存します

-お

--リモート名

出力をリモートファイル名で保存します

-s

- 静けさ

出力メッセージを抑制します

-v

--詳細

詳細な出力を有効にする(デバッグ)

-w

--書き出し

応答の詳細を出力する

利用可能なオプションの完全なリストを表示するには、以下を使用します。

カール --help

よくあるエラーとその解決方法

cURL は強力ですが、POST リクエストを送信するときにエラーが発生することがよくあります。一般的な問題と解決策を次に示します。

  • curl: (6) ホストを解決できませんでした– これはドメイン名が間違っているか、DNS 解決の問題があることを意味します。URL を再確認してください。
  • curl: (7) ホストへの接続に失敗しました– サーバーにアクセスできないことを示します。サーバーがオンラインであり、インターネット接続がアクティブであることを確認してください。
  • curl: (35) SSL接続エラー– SSLの問題によりリクエストが失敗した場合は、-kを使用してSSL検証をバイパスしてみてください。
  • HTTP 400 不正なリクエスト– これは、サーバーがリクエストを拒否したことを意味します。多くの場合、データ形式が正しくないためです。コンテンツ タイプとデータ ペイロードを確認してください。
  • HTTP 401 認証なし– 認証が必要であるが、認証が欠落しているか正しくない場合に発生します。-u または -H "Authorization: Bearer <token>" を使用して、API キーまたは資格情報が正しく渡されていることを確認します。

基本的なPOSTリクエスト構文

curl -X POST -d "こんにちは" https://example.com/api

このコマンドでは、

  • -X POST はリクエスト タイプを指定します。
  • -d "Hello" は送信されるデータを定義します。
  • https://example.com/api がターゲット URL です。

コンテンツタイプヘッダーの設定

curl -X POST -H "コンテンツタイプ: text/plain" -d "こんにちは" https://example.com/api

-H "Content-Type: text/plain" を追加すると、データ形式がプレーンテキストであることがサーバーに通知されます。

JSONデータの送信

curl -X POST -H "コンテンツタイプ: application/json" -d '{"key":"value"}' https://example.com/api

コンテンツ タイプとして application/json を使用すると、データが JSON として正しく解釈されます。

XMLデータの送信

curl -X POST -H "Content-Type: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api

POST によるファイルのアップロード

curl -X POST -F "file=@/path/to/img.png" https://example.com/api/upload

複数のファイルをアップロードする場合:

curl -X POST -F "file=@/path/to/img1.png" -F "file=@/path/to/img2.png" https://example.com/api/upload

cURL による認証

curl -u ユーザー名:パスワード https://example.com/login

ユーザー名とパスワードを実際の資格情報に置き換えます。

結論

cURL は、強力で柔軟なコマンドライン オプションを使用して HTTP のやり取りを簡素化します。POST リクエストをマスターすることで、開発者は API 通信、データ転送、およびファイルのアップロードを効率的に管理できます。API エンドポイントのテスト、フォーム送信の自動化、Web サイトからのデータのスクレイピングなど、必要な作業が何であれ、cURL は軽量で効果的なソリューションを提供します。ワークフローを最適化するために、cURL を試し続けてください。

Plisio では以下のサービスも提供しています。

2 クリックで暗号化請求書を作成 and 暗号通貨の寄付を受け入れる

14 統合

10 最も人気のあるプログラミング言語のライブラリ

19 暗号通貨と 12 ブロックチェーン

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.