cURLを使用してRESTfulPUT(またはDELETE)メソッドをテストするにはどうすればよいですか?
5 に答える
-X
必要なHTTP動詞でフラグを使用する:
curl -X PUT -d arg=val -d arg2=val2 localhost:8080
この例では、-d
フラグを使用してPUTリクエストに引数を提供しています。
素早い回答:
1行で、curlコマンドは次のようになります。
a)フォームデータを送信する場合:
curl -X PUT -H "Content-Type: multipart/form-data;" -F "key1=val1" "YOUR_URI"
b)生データをjsonとして送信する場合:
curl -X PUT -H "Content-Type: application/json" -d '{"key1":"value"}' "YOUR_URI"
c)POSTリクエストでファイルを送信する場合:
curl -X POST "YOUR_URI" -F 'file=@/file-path.csv'
代替ソリューション:
ChromeストアのPOSTMANアプリを使用して、同等のcURLリクエストを取得できます。これは、より複雑なリクエストを作成する場合に特に便利です。
他の形式のリクエスト、またはjava、PHPなどのさまざまなクライアントのリクエストについては、以下のPOSTMAN/コメントを確認してください。
マーティンC.マーティンのコメントに続くPUTの例:
curl -T filename.txt http://www.example.com/dir/
(と-T
同じ--upload-file
)を使用すると、curlはHTTPにPUTを使用します。
curl -X PUT -d 'new_value' URL_PATH/key
どこ、
X-要求コマンドに使用されるオプション
d-リモートURLにデータを配置するために使用されるオプション
URL_PATH-リモートURL
new_value-サーバーのキーに設定する値
私はこのスレッドに遅れていますが、私にも同様の要件がありました。私のスクリプトはcurlのリクエストを動的に作成していたので、GET、POST、PUTで同様のコマンド構造が必要でした。
これが私のために働くものです
PUTリクエストの場合:
curl --request PUT --url http://localhost:8080/put --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
POSTリクエストの場合:
curl --request POST --url http://localhost:8080/post --header 'content-type: application/x-www-form-urlencoded' --data 'bar=baz&foo=foo1'
GETリクエストの場合:
curl --request GET --url 'http://localhost:8080/get?foo=bar&foz=baz'