2012-02-24 104 views
6

請解釋這curl命令:捲曲 - - digest命令

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 

什麼是<標誌是什麼意思?

我明白了什麼:

[--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 @ - 網址< ad.xml [-d @ - http://webapi.ebayclassifieds.com/webapi/partners/ {名} /廣告/ {EXT-參考-id} < ad.xml]

我發現了什麼:

-d,--data

(HTTP)將POST請求中的指定數據發送到HTTP服務器 ,其方式與瀏覽器在填寫HTML 表單並按下提交按鈕時執行的操作相同。這將導致curl將 數據傳遞給使用內容類型 application/x-www-form-urlencoded的服務器。與-F,--form比較。

-d,--data與--data-ascii相同。要發佈純二進制數據,您應該使用--data-binary選項。要對錶單字段的值 進行URL編碼,您可以使用--data-urlencode。

如果任何這些選項是使用多於一次的同一命令行 更多,指定的數據條將連同 分離& -symbol合併。因此,使用'-d name = daniel -d skill = lousy'會使 生成一個看起來像'name = daniel & skill = lousy'的帖子。

如果您使用字母@開始數據,其餘的應該是文件 名稱以讀取數據,或者 - 如果要卷頁從標準輸入讀取數據 。該文件的內容必須已經被URL編碼。 也可以指定多個文件。從名爲 'foobar'的文件發佈數據將因此使用--data @foobar完成。

領導問題: 如果有人知道如何翻譯這只是CFHTTP不介意的摘要式身份驗證,並假設請求正在與摘要式身份驗證。

+0

爲什麼這被標記爲coldfusion? – 2012-03-01 12:04:22

+0

@Mike在我提到的cfhttp的主要問題中。 – Vlad 2012-03-02 13:54:24

回答

1

「-d @ - 」選項意味着curl將發送一個POST請求和從stdin讀取的數據。

'<'操作符告訴shell向stdin提供一個文件。

您可以通過改爲執行-d @ ad.xml來製作更簡單的命令行,而不是使用stdin。

+1

在cf中,你可以使用'發佈一個xml字符串' – Leigh 2012-02-25 20:52:41