curlコマンドを使用してPOST/GETリクエストをシミュレートする

パラメータの説明

フォーマット:curl -Hリクエストヘッダー-dリクエストボディ-X POSTインターフェースアドレス

パラメータコンテンツ フォーマット
-H(または–header)リクエストヘッダー“Content-Type: application/json”
-dPOSTコンテンツ‘{“id”: “001”, “name”:“田中”, “phone”:“13099999999”}’
或は‘id=001&name=田中&phone=13099999999’
-X契約リクエストPOST、GET、DELETE、PUSH、PUT、OPTIONS、HEAD

curlコマンドは、URLルールを使用してコマンドラインで実行するファイル転送ツールです。ファイルのアップロードとダウンロードをサポートします。 Curlは、HTTP、HTTPS、ftpなどを含む多くのプロトコルをサポートします。また、POST、Cookie、認証、指定されたオフセットからの一部のファイルのダウンロード、ユーザーエージェント文字列、速度制限、ファイルサイズ、進行状況バーなどの機能もサポートします。

Webバックグラウンドプログラムの開発とテストの過程で、テスト用のURLを送信する必要があることがよくあります。curlを使用すると、要件を満たすURLコマンドを簡単にシミュレートできます。

仮に、ターゲットURLが:127.0.0.1:8080/login

curlを使用してGETリクエストを送信します:curl protocol://address:port/url?args

curl http://127.0.0.1:8080/login?admin&passwd=12345678

curlを使用してPOSTリクエストを送信します: curl -d “args” protocol://address:port/url

curl -d "user=admin&passwd=12345678" http://127.0.0.1:8080/login

この方法では、パラメータがヘッダーにあります。ファイルへの出力を指定する必要がある場合は、リダイレクトを介して操作を実行できます。

curl -H "Content-Type:application/json" -X POST -d 'json data' URL
curl -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}' http://127.0.0.1:8000/login

実例で説明する

実例1

application/x-www-form-urlencoded

よく見えるPOSTリクエストであり、curlを使用してこのリクエストを開始することも非常に簡単です。

$ curl  -X POST -d 'name=田中'  http://localhost:2000/api/basic

実例2

application/json

application/x-www-form-urlencoded型のPOSTリクエストと同様に、-dパラメータ値はJSON文字列であり、追加のContent-Type: application/jsonは送信されるコンテンツのフォーマットを指定します。

$ curl -H "Content-Type: application/json" -X POST -d '{"id": "001", "name":"田中", "phone":"13099999999"}'  http://localhost:2000/api/json

実例3

multipart/form-data

このようなリクエストには通常、ファイルのアップロードが含まれます。 この型のリクエストのバックエンド処理もより複雑です。

$ curl -F raw=@raw.data -F name=张三 http://localhost:2000/api/multipart

実例4

ファイルの内容を送信するデータとして使用します

送信するデータが前の実例と異なる場合、name: 田中 キーと値のペアは1つだけでり、データは多い、マンドラインに書き込むのが不便でエラーが発生しやすい場合は、次のように書き込むことができます。データコンテンツを最初にファイルに渡し、-d @filename を渡してデータを送信します。 これは-dパラメータを使用する方法であるため、前に-dパラメータが使用されていたところもこのように使用できます。

実際、-dパラメータ値はコマンドラインに書き込まれ、ファイルに書き込まれるようになります。 これは、multipart/form-dataにファイルをアップロードするPOSTメソッドと同じではありません。 @記号は、ファイル名の後に続くことを示し、このファイルの内容は-dパラメータとして読み取られます。

例えば、JSONファイルがあり、data.jsonの内容は以下のとおりです。

{
    "id": "001",
    "name":"田中",
    "phone":"13099999999"
}
$ curl -H "Content-Type: application/json" -X POST -d @data.json  http://localhost:2000/api/json

を介してデータを送信できます。

Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です