如何使用curl在Windows下发布PUT请求?

ser*_*gtk 3 windows command-line curl http

我需要使用PUT请求通过curl.exe在windows下发布XML数据.

在卷曲帮助中我发现:

-d/--data <data>   HTTP POST data (H)
Run Code Online (Sandbox Code Playgroud)

我应该提供<data>什么?

man*_*ana 14

卷曲样本电话

# with inlining plain data
curl -X PUT -d "payload" http://localhost
# referrring file
curl -X PUT -d @myXmlFile.xml http://localhost

如果你的windows curl-port不支持,请去cygwin.它是一个类似Linux的Linux环境,并提供"适当"的卷曲.


小智 7

在Windows中,如果双引号参数本身包含双引号字符,则双引号必须加倍.

例如,输入'This is'引用"payload"作为"This is""quoted""payload",这与Unix中的非常不同.

例:

curl -X PUT -d "This is ""quoted"" payload" http://localhost
Run Code Online (Sandbox Code Playgroud)


Pau*_*son 6

在 Windows 中,您需要将 @放在要发送的文件的引号

curl -XPUT --data-binary "@uploadme.txt"
Run Code Online (Sandbox Code Playgroud)

否则你会得到奇怪的错误,因为它试图使用文件的内容作为 url:

curl: (6) Couldn't resolve host 'upload'
curl: (6) Couldn't resolve host 'me!'
Run Code Online (Sandbox Code Playgroud)

(uploadme.txt 包含“上传我!”)

  • 这是@ insde 的引用让我猜了好几个小时。谢谢保罗 (2认同)
  • 感谢您指定 @ 需要放在引号内。在过去的几个小时里,我一直在敲击键盘,试图弄清楚这一点。再次感谢 (2认同)