2011-07-27 11 views
4

내가 설정 CouchDB를 복제하려고 컬에 다음 줄을 실행 해요 : I 마찬가지로 지금까지CURL CouchDB를 복제 명령 - 잘못된 JSON

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

: 그것은 다음과 같은 오류를 반환 유지

curl -X POST -d '{"source":"http://user:[email protected]:5984/main","target":"main"}' -H 'Content-Type: application/json' http://user:[email protected]/_replicate 

JSON이 유효 해 보인다는 것을 알 수 있습니다. 어떤 아이디어?

저는 Powershell도 사용하고 있습니다.

+0

주의 사항. 귀하의 예제에서는 소스로 대상을 전달하고 소스를 대상으로하는 것처럼 보입니다. – Cinquo

답변

2

CouchDB wiki에서 나는 this을 발견 했으므로이 문제를 해결하는 데 도움이 될 수 있습니다. 기본적으로 Windows에서는 특수 문자를 이스케이프하거나 JSON을 파일에 쓰고 컬 CLI에서 사용해야합니다.

0

전에 curl과 PowerShell에 문제가있었습니다 - 내 해결 방법은 배치 파일 (출력을 PowerShell 변수에 넣음)에서 호출하는 것이 었습니다 ... 인수가 컬에 전달되는 방식과 관련이있을 수 있다고 생각했습니다. 잘못 해석되고 -이 일을 나는 그것은뿐만 아니라 나에게 많은 시간을 무슨 일이 생긴 http://huddledmasses.org/the-problem-with-calling-legacy-or-native-apps-from-powershell/

7

어쩌면이 도울 수 ... 그것의 하단에 도착하지 않았다. PowerShell 파서 (이유를 알고있는 사람)가 json에서 따옴표를 제거합니다. 당신은 다음과 같이 호출 할 필요가 :

curl -X POST -d '{"""source""":"""http://user:[email protected]:5984/main""","""target""":"""main"""}' -H 'Content-Type: application/json' http://user:[email protected]/_replicate 

는 그래서 '{: HTTP : // 사용자 : [email protected] : 5984/주, 대상 주요 소스}'처럼 곱슬 곱슬로 전송

http://pscx.codeplex.com/ 모듈을 살펴보십시오. 그러한 문제를 발견 할 때 EchoArgs이 도움이 될 수 있습니다.