Как заголовок говорит. Я отправляю простое завихрение cmd от Win7 до CouchDB на моем поле Linux, и это не работает. Но если я выполняю ту же команду в Linux, она работает. Я отправляю это:
curl -X POST 192.168.2.5:5984/test/testdoc -d '{"owner":{"fname":"test","lname":"ing"}}'
Из окон это продолжает давать мне "ошибку: плохой запрос, reason:invalid UTF-8 JSON". Я могу работать, ПОЛУЧАЮТ команды от окон очень хорошо, я просто не могу казаться POST к CouchDB.
К сожалению, оболочка Windows (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"}
Другой вариант - установить другую оболочку, например Bash для Windows: http://win-bash.sourceforge.net/. Тогда вы сможете легче следить за документацией и проводить собственные эксперименты.