2015-09-21 83 views
1

我正在調用RESTful API的程序。 api的所有文檔都是cURL命令,但是我不能創建cURL命令,所以我需要翻譯它們並以不同的方式提出請求。這是他們爲我想要創建的查詢提供的示例代碼。這個cURL命令中的-d是什麼意思?

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 ` 

我一直在cURL文檔,並瞭解除-d以外的所有標誌。我得到它的參數是xml的搜索參數,但是-d在GET捲曲中意味着什麼?

謝謝

回答

2

-d指定請求的主體。從手冊頁:

-d,--data (HTTP)將指定的數據在POST請求的HTTP服務器,以同樣的方式,一個瀏覽器,當用戶已經 填寫一個HTML表單並按 提交按鈕。這將導致curl使用內容類型 application/x-www-form-urlencoded將數據傳遞到服務器。與-F,--form比較。

-d,--data與--data-ascii相同。 --data-raw幾乎相同,但沒有對@ 字符的特殊解釋。要純粹發佈數據爲 二進制數據,則應該使用--data-binary選項。要對錶單字段的值進行URL編碼,您可以使用--data-urlencode。

有趣的是,您使用的GET服務使用請求正文,如解釋here, it is possible but unwanted

例如;代理被允許刪除身體。但只要你和他們的服務器之間沒有機器,它可能會工作;他們可能有軟件可以讓他們解讀身體。

+0

這就是我的想法。但我不認爲GET請求有屍體。我錯了嗎? – user3708584

+0

我已經擴展了我的答案 – Sjon

相關問題