web-dev-qa-db-ja.com

方法POST curlリクエストのデータ内のURL

curlpathおよびfileNameを使用して2つのパラメーターを投稿しようとしています。

curl --request POST 'http://localhost/Service' --data "path='/xyz/pqr/test/'&fileName='1.doc'"

私はこれで何かが間違っていることを知っています。 URLEncodeのようなものを使用する必要があります。私はまだ運がない多くのことを試しました。

CurlリクエストのデータにURLを投稿するにはどうすればよいか例を示してください。

37
Vivek Muthal

おそらく、単一引用符を含める必要はありません。

curl --request POST 'http://localhost/Service' --data "path=/xyz/pqr/test/&fileName=1.doc"

更新:curlのマニュアルを読むと、実際には両方のフィールドを2つの--dataで区切ることができます。

curl --request POST 'http://localhost/Service' --data "path=/xyz/pqr/test/" --data "fileName=1.doc"

--data-binaryを試すこともできます:

curl --request POST 'http://localhost/Service' --data-binary "path=/xyz/pqr/test/" --data-binary "fileName=1.doc"

そして--data-urlencode:

curl --request POST 'http://localhost/Service' --data-urlencode "path=/xyz/pqr/test/" --data-urlencode "fileName=1.doc"
53
konsolebox

変数をセミクォートで囲む必要はないと思います。試してください:

curl -XPOST 'http://localhost/Service' -d "path=%2fxyz%2fpqr%2ftest%2f&fileName=1.doc"

%2fは、/のエスケープコードです。

http://www.december.com/html/spec/esccodes.html

また、ポートを指定する必要がありますか? ( チェックしてるだけ :) )

2
Patrick