目次
パラメータの説明
フォーマット:curl -Hリクエストヘッダー-dリクエストボディ-X POSTインターフェースアドレス
パラメータ | コンテンツ | フォーマット |
-H(または–header) | リクエストヘッダー | “Content-Type: application/json” |
-d | POSTコンテンツ | ‘{“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
を介してデータを送信できます。
コメントを残す