2010-12-22 222 views
22

如何在-d參數中使用curl.exe發送雙引號字符。我不想對雙引號進行網址編碼。由於-d數據需要用雙引號包圍,所以我似乎無法使其工作。如何在curl.exe的-d參數中發送雙引號?

或者是否有另一個curl.exe標誌,告訴它使用整個表單發佈數據的文件內容?

回答

11

你絕對可以逃避雙引號。如何做到這一點取決於您未指定的操作系統和外殼。在Windows上,您可以使用^作爲轉義字符。

你也可以這樣做:

curl [...] -d @filename 

...它從一個文件名爲filename讀取後的數據。

谷歌和/或男人是你的朋友。

http://curl.haxx.se/docs/manpage.html

5

您可以用單引號括住數據並在裏面使用雙引號。

+4

然後,他最好祈禱數據中沒有單引號要發佈? – martona 2010-12-22 22:24:03

+1

@martona這個問題是非常具體的雙引號。 – Isac 2010-12-22 22:25:46

+0

是的,我的問題是用雙引號,但現在我知道-d @filename的作品,我不必擔心任何引號。 – slolife 2010-12-22 22:40:22

22

curl.exe作品這種形式:

-d "{\"param\":\"value\"}" 

即雙引號圍繞數據,和雙引號裏面

5

對於雙引號問題的轉義反斜線屏蔽,我發現三倍雙引號作品從外殼:

curl -d {"""foo""":"""bar"""} 

而加倍雙引號從一個批處理文件中的工作原理:

curl -d {""foo"":""bar""} 

這是在shell首先測試很煩人。