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 統合
- BigCommerce
- Ecwid
- Magento
- Opencart
- osCommerce
- PrestaShop
- VirtueMart
- WHMCS
- WooCommerce
- X-Cart
- Zen Cart
- Easy Digital Downloads
- ShopWare
- Botble
10 最も人気のあるプログラミング言語のライブラリ
19 暗号通貨と 12 ブロックチェーン
- Bitcoin (BTC)
- Ethereum (ETH)
- Ethereum Classic (ETC)
- Tron (TRX)
- Litecoin (LTC)
- Dash (DASH)
- DogeCoin (DOGE)
- Zcash (ZEC)
- Bitcoin Cash (BCH)
- Tether (USDT) ERC20 and TRX20 and BEP-20
- Shiba INU (SHIB) ERC-20
- BitTorrent (BTT) TRC-20
- Binance Coin(BNB) BEP-20
- Binance USD (BUSD) BEP-20
- USD Coin (USDC) ERC-20
- TrueUSD (TUSD) ERC-20
- Monero (XMR)