2010-05-06 20 views
8

就像標題所說的那樣。我在Linux機器上發送一個簡單的從Win7到CouchDB的cUrl cmd,但它不起作用。但是如果我在Linux中運行相同的命令,它可以工作。我要送這樣的:從Win7運行cUrl cmd不起作用,但在Linux上它的確如

curl -X POST 192.168.2.5:5984/test/testdoc -d '{"owner":{"fname":"test","lname":"ing"}}' 

從Windows,它不斷給我一個 「錯誤:錯誤的請求,理由是:無效的UTF-8 JSON」。 我可以從Windows運行GET命令就好了,我似乎無法發佈到CouchDB。

回答

13

不幸的是,Windows shell(cmd.exe)在Mac OSX和Linux上使用不同的引號。

最簡單的解決方法是,以避免單引號和JSON文件中使用雙引號,用雙引號轉義:

curl -X PUT 192.168.2.5:5984/test/testdoc -d "{\"owner\":{\"fname\":\"test\",\"lname\":\"ing\"}}" 
{"ok":true,"id":"testdoc","rev":"1-299729b3cb92a371136cb7331c66644d"} 

另一種選擇是安裝一個不同的外殼,如猛砸對於Windows: http://win-bash.sourceforge.net/。然後,您可以按照文檔,更輕鬆地進行自己的實驗。

+1

啊,謝謝!我正在拉我的頭髮,試圖找出這一個。 – jkidv 2010-05-07 10:44:10

+0

不客氣! – JasonSmith 2010-05-07 13:58:16

相關問題