请解释这个curl命令:
curl --digest \
-u{username}:{password} \
-v \
-X PUT \
-H 'Expect: ' \
-H 'Content-type: application/xml' \
-d @- \
http://webapi.ebayclassifieds.com/webapi/partners/{username}/ads/{ext-reference-id} \
< ad.xml
&lt;&lt;标志意味着什么?
我的理解:
[--digest] its a digest authentication
[-u{username}:{password}] obviously username and password
[-X PUT] method="put"
[-H 'Expect: '] header = 'Expect: '
[-H 'Content-type: application/xml'] additional header
这可能是我得不到的-d @ - url&lt; ad.xml [-d @ - http://webapi.ebayclassifieds.com/webapi/partners/ {username} / ads / {ext-reference-id}&lt; ad.xml]
我找到了什么:
-d, - 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 @foobar完成。
主要问题: 如果有人知道如何将其转换为cfhttp,请不要介意摘要认证,并假设请求正在使用摘要认证。
答案 0 :(得分:1)
“ - d @ - ”选项意味着curl将发送一个POST请求,其中包含从stdin读取的数据。
'&lt;' operator告诉shell将文件提供给stdin。
您可以通过执行-d @ ad.xml来创建更简单的命令行,而不是使用stdin。