CURL CouchDB复制命令—无效的JSON



我在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

这种事在我身上也发生过很多次。PowerShell解析器(谁知道为什么)删除json.

中的引号。

所以它发送它到curl像'{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可能有助于发现这些问题。

查看CouchDB wiki,我发现这可能对解决您的问题很有用。基本上在Windows下,您需要转义特殊字符或将JSON写入文件并从curl CLI中使用。

我以前有过curl和PowerShell的问题-我的解决方案是从批处理文件(输出到PowerShell变量)中调用它…我认为这可能与传递给curl的参数被误解的方式有关-我从来没有找到它的底部,因为这是工作的…

也许这可以帮助http://huddledmasses.org/the-problem-with-calling-legacy-or-native-apps-from-powershell/

为了不手动编写所有json部分,当您使用powershell时,您应该尝试PSCouchDB。

副本:

PS >using module PSCouchDB
PS >$rep = New-Object PSCouchDBReplication -ArgumentList 'main','main_rep'
PS >$rep.SetContinuous()
PS >New-CouchDBReplication -Data $rep -Authorization "admin:password"

参考:https://pscouchdb.readthedocs.io/en/latest/server.html create-replica

相关内容

  • 没有找到相关文章

最新更新