curlは、ユーザーが任意の標準プロトコルを使用してデータを転送できるようにするコマンドラインユーティリティです。 Linuxを含むすべての主要なオペレーティングシステムで機能します。 curlコマンドは、主にpostリクエストを送信してAPI(アプリケーションプログラミングインターフェイス)をテストするために使用され、多くのLinuxディストリビューションにプリインストールされています。ただし、Ubuntu 20.04(LTS)の長期サポートではcurlコマンドを手動でインストールする必要があります。
Ubuntu20.04LTSがデモに使用されています。
Ubuntu20.04にcurlをインストールする
以下のコマンドを入力して、Ubuntu20.04にcurlをインストールします。
$ sudo apt install curl

注:curlコマンドがシステムに既にインストールされている場合は、この手順をスキップできます。
curlコマンドをインストールしたら、次のコマンドを使用してインストールされているバージョンを確認します。
$ curl --version

curlを使用してPOSTリクエストを作成します
HTTPpostメソッドを使用してデータをリモートサーバーに送信します。
以下は、POSTリクエストを送信するためのcurlコマンドの簡単な形式です。
$ curl -X POST [options] [the URL of server]
-Xオプションは、HTTPメソッドを説明するために使用されます。 curlコマンドは、デフォルトのHTTPメソッドとしてGetメソッドを使用します。ただし、POSTリクエストを行うには、-Xオプションを指定してPOSTを指定する必要があります。
一般的なPOSTリクエストは次のように行うことができます:
$ curl –X POST https://example.com/

POSTリクエストで追加のフィールドを送信する
通常、POSTリクエストはHTMLフォームによって行われます。
ユーザー名と年齢を受け入れるデモAPIを作成しました。投稿リクエストを作成して、名前と年齢の値を送信しましょう。 –dオプションをcurlコマンドとともに使用して、追加のフィールドのデータをリモートサーバーに送信します。
$ curl -X POST -d 'name=kamran&age=24' https://curlliuxexample.000webhostapp.com/index.php

–dオプションの代わりに、–Fオプションを使用して、次のようにpostリクエストで追加のフィールドを送信することもできます。
curl -X POST -F 'name=kamran' -F 'age=24' https://curlliuxexample.000webhostapp.com/index.php

–Fオプションを使用している間は、データを&演算子でマージできません。 -dオプションはapplication/x-www-form-urlencoded Content-Typeを使用し、追加のフィールドのデータをサーバーに送信しますが、-Fオプションはmultipart /form-dataContent-Typeを使用します。
POSTリクエストでヘッダーまたはコンテンツタイプを指定します
ヘッダーまたはコンテンツタイプは、-Hオプションを使用してPOSTリクエストで指定できます。 Content-Typeをapplication/jsonに設定し、次のコマンドを使用してJSONデータを送信しましょう:
$ curl -X POST -H "Content-Type: application/json" -d '{"name": "kamran", "age": "24"}' https://example.com

curlコマンドを使用してファイルをアップロードします
ファイルは、curlコマンドを使用してアップロードできます。 curlコマンドを使用してファイルをアップロードするには、ファイルの場所の前に「@」を追加するだけです。
$ curl -X POST -F '[email protected]/home/Downloads/mypic.jpg' http://example.com

前述のコマンドでは、curlコマンドを使用して画像ファイルをアップロードしています。
結論
この投稿では、curlコマンドの使用法について説明します。 curlコマンドを使用して、追加のフィールドデータを送信し、ファイルをサーバーにアップロードできます。