GNU/Linux >> Linux の 問題 >  >> Debian

curlを使用してPOSTリクエストを行う方法

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コマンドを使用して、追加のフィールドデータを送信し、ファイルをサーバーにアップロードできます。


Debian
  1. デフォルトで追加のパネルでノーチラスを開く方法は?

  2. ファイルをスパースにする方法は?

  3. Wget で HTTP PUT を実行するにはどうすればよいですか?

  1. ウェブカメラでストップモーションまたはタイムラプスビデオを作成する方法は?

  2. CiscoWebexを13.1064ビットで動作させる方法は?

  3. VPNの作り方

  1. OpenSSLを使用して証明書署名要求(CSR)を生成する方法

  2. OpenSSLを使用して証明書署名要求(CSR)を生成する方法は?

  3. Wget で保存せずにファイルを要求するにはどうすればよいですか?