2011-07-27 9 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をファイルに書き込んだり、curl CLIからJSONを使用したりする必要があります。

0

以前はカールとPowerShellに問題がありました。私の解決は、バッチファイル(出力をPowerShell変数に入れたもの)から呼び出すことでした...引数がカールに渡される方法誤解されている - これは働いていたように私はそれの下にやったことがなかった...

多分これは、それは同様に私に何回も起こっhttp://huddledmasses.org/the-problem-with-calling-legacy-or-native-apps-from-powershell/

7

を助けることができます。 PowerShellのパーサー(理由を知っている人)がjsonの引用符を削除します。

だから、 '{ソースメインます。http://ユーザー:[email protected]:5984 /メイン、ターゲット}' のようにカールし、それを送信します。

curl -X POST -d '{"""source""":"""http://user:[email protected]:5984/main""","""target""":"""main"""}' -H 'Content-Type: application/json' http://user:[email protected]/_replicate 
あなたはこのようにそれを呼び出す必要があり

http://pscx.codeplex.com/モジュールをご覧ください。このような問題を発見するときにはEchoArgsが役に立ちます。

関連する問題