Команда CURL CouchDB Replication - неверный JSON - PullRequest
4 голосов
/ 27 июля 2011

Я запускаю следующую строку в curl, пытаясь настроить репликацию couchdb:

curl -X POST -d '{"source":"http://user:password@siteA.com:5984/main","target":"main"}' -H 'Content-Type: application/json' http://user:password@siteB.com/_replicate

Он возвращает следующую ошибку:

{"error":"bad_request","reason":"invalid UTF-8 JSON"}

Насколько я могу судитьJSON кажется действительным.Есть идеи?

Я тоже использую Powershell.

Ответы [ 4 ]

7 голосов
/ 28 июля 2011

Это случилось со мной много раз. Парсер PowerShell (кто знает почему) удаляет кавычки в json.

Таким образом, он отправляет его, чтобы свернуться как '{source: http://user:password@siteA.com:5984/main,target:main}' Вы должны назвать это так:

curl -X POST -d '{"""source""":"""http://user:password@siteA.com:5984/main""","""target""":"""main"""}' -H 'Content-Type: application/json' http://user:password@siteB.com/_replicate

Посмотрите на http://pscx.codeplex.com/ модуль. EchoArgs может помочь при обнаружении таких проблем.

2 голосов
/ 28 июля 2011

Глядя на вики-сайт CouchDB, я нашел это , которое может помочь решить вашу проблемуВ основном под Windows вам нужно экранировать специальные символы или записать JSON в файл и использовать его из CLI curl.

0 голосов
/ 11 февраля 2019

Смотрим этот модуль powershell для CouchDB и запускаем это:

New-CouchDBReplication -SourceServer localhost -TargetServer server1 -SourceDatabase test -TargetDatabase
test_replica -Continuous -Authorization "admin:password"
0 голосов
/ 28 июля 2011

Раньше у меня были проблемы с curl и PowerShell - я решил вызвать его из пакетного файла (вывод помещается в переменную PowerShell) ... думал, что это может быть связано с тем, как аргументы передаются в curl. неверно истолковано - я никогда не доходил до сути, как это работало ...

может быть, это может помочь http://huddledmasses.org/the-problem-with-calling-legacy-or-native-apps-from-powershell/

...