这个cURL命令中的-d是什么意思?

use*_*584 5 xml api rest curl get

我正在开发一个调用RESTful api的程序.api的所有文档都是cURL命令,但我无法生成cURL命令,所以我需要翻译它们并以不同的方式提出请求.这是他们为我想要进行的查询提供的示例代码.

curl -u '{userEmail}:{userApiToken}' -v -X GET -H 'Content-Type: application/xml' -o 'result.xml' -d '<request><layout>1</layout><searchmode>Cany</searchmode><searchvalue>aaron</searchvalue><filtermode></filtermode><filtervalue></filtervalue><special></special><limit>100</limit><start></start><sortfield></sortfield><sortdir></sortdir></request>' https://secure.website.com/contacts  `
Run Code Online (Sandbox Code Playgroud)

我已经阅读了cURL文档,并了解除-d之外的所有标志.我得到它的参数是搜索参数的xml,但是-G在GET cURL上是什么意思?

谢谢

Sjo*_*jon 8

-d指定请求的主体.从手册页:

-d, - data(HTTP)将POST请求中的指定数据发送到HTTP服务器,就像用户填写HTML表单并按下提交按钮时浏览器一样.这将导致curl使用content-type application/x-www-form-urlencoded将数据传递到服务器.比较-F, - form.

-d, - data与--data-ascii相同.--data-raw几乎相同,但没有对@字符的特殊解释.要纯数据二进制发布数据,您应该使用--data-binary选项.要对表单字段的值进行URL编码,您可以使用--data-urlencode.

有趣的是,您使用GET与请求主体一起使用的服务,如此处所述,它可能但不需要.

例如; 允许代理删除正文.但只要您和他们的服务器之间没有机器,它就可以工作; 他们可能拥有允许他们解释身体的软件.