-data选项如何在curl中工作

时间:2013-09-16 03:42:29

标签: linux curl

curl --data "<xml>" --header "Content-Type: text/xml" --request PROPFIND url.com

通过阅读curl手册页,我无法理解上述命令行如何使用--data选项。

问题:

  1. 以上命令行有什么作用?
  2. 为什么手册页没有描述这种用法?如果确实如此,那么在阅读手册页之后我不明白了什么?

1 个答案:

答案 0 :(得分:1)

--data标志用于定义POST数据。

该命令发送内容为POST且MIME类型为<xml>的{​​{1}}。但是,使用标记text/xml,您将HTTP方法从--request设置为POST并将请求发送到PROPFIND

我也设法在手册中找到url.com标志:

  

--data

     

(HTTP)将POST请求中的指定数据发送到HTTP服务器,   与用户填写HTML时浏览器的操作方式相同   表单并按下提交按钮。这将导致卷曲通过   使用content-type将数据发送到服务器   应用程序/ x-WWW窗体-urlencoded。比较-F, - form。

     

-d, - data与--data-ascii相同。要纯数据二进制发布数据,您应该使用--data-binary选项。对URL进行URL编码   您可以使用的表单字段的值--data-urlencode。

     

如果在同一命令中多次使用这些选项中的任何一个   在行中,指定的数据将与a合并在一起   分离&amp; -symbol。因此,使用'-d name = daniel -d skill = lousy'会   生成一个看起来像'name = daniel&amp; skill = lousy'的帖子块。

     

如果用字母@开始数据,其余的应该是一个文件   用于读取数据的名称,或者 - 如果您希望curl读取数据   来自stdin。该文件的内容必须已经过URL编码。   也可以指定多个文件。从名为的文件中发布数据   因此,'foobar'将使用--data @filename完成。当--data被告知   从这样的文件读取,回车和换行将是   剥离了。