就像标题所说的那样。我在我的Linux机器上从Win7向CouchDB发送一个简单的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命令就好了,我似乎无法POST到CouchDB。
答案 0 :(得分:15)
不幸的是,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"}
另一种选择是安装不同的shell,例如Bash for Windows:http://win-bash.sourceforge.net/。然后,您可以按照文档进行操作,并更轻松地进行自己的实验。