2010-11-23 38 views
3

我需要通過使用PUT請求的窗口下的curl.exe發佈XML數據。如何使用curl在Windows下發布PUT請求?

在嫋嫋的幫助,我發現:

-d/- 數據<數據> HTTP POST數據(H)

我應該提供什麼<數據>?

+2

這個選項沒有使用curl,但根據手冊,它只是字符串,它作爲實體主體傳遞給服務器。如果您的數據以'@'開始,那麼接下來是將被讀取併發送到服務器的文件的名稱。檢查手冊頁:http://curl.haxx.se/docs/manpage.html – 2010-11-23 15:18:00

+0

@PeterŠtibraný謝謝!忽略了這一點 - 儘管這是針對unix命令行語法的特定內容,並且在Windows中沒有。 – sergtk 2010-11-23 15:25:16

回答

14

捲曲樣品呼籲

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

如果您的Windows捲曲端口不支持它去cygwin。它是一個類似linux的環境,也提供了「適當」的捲曲。

+0

我嘗試了cygwin並獲得getaddrinfo錯誤。在其他PC上運行 - 一切正常。 – sergtk 2010-11-25 23:48:51

6

在windows中,如果雙引號參數本身包含雙引號字符,則雙引號必須加倍。

例如,輸入'This is「引用的」有效載荷「爲」This is「」quoted「」payload「,這與Unix中的非常不同。

例子:

curl -X PUT -d "This is ""quoted"" payload" http://localhost 
2

在Windows,你需要把@的報價爲您要發送的文件:

curl -XPUT --data-binary "@uploadme.txt" 

否則你會得到奇怪的錯誤因爲它試圖使用該文件的內容作爲url:

curl: (6) Couldn't resolve host 'upload' 
curl: (6) Couldn't resolve host 'me!' 

( uploadme.txt包含「上傳我!」)

相關問題