Acralyzer:添加用户时出现invalid_json错误

时间:2013-06-05 11:44:35

标签: curl couchdb acra

我尝试使用以下方式添加用户:

curl -X PUT -u myUsername:myPassword http://kaydee.iriscouch.com/_users/org.couchdb.user:myNewUsername -d '{"name":"myNewUsername", "password":"myNewUserPassword", "roles":["reporter", "reader"], "type":"user"}' -H "Content-Type: application/json"

回应是:

{"error":"bad_request","reason":"invalid_json"}
curl: (6) Could not resolve host: password
curl: (3) [globbing] error: bad range specification after pos 8
curl: (3) [globbing] unmatched close brace/bracket at pos 7
curl: (3) [globbing] unmatched close brace/bracket at pos 10

我正在使用Windows 8.我需要对命令进行任何更改吗?

我相信IrisCouch正在使用CouchDB 1.2。

2 个答案:

答案 0 :(得分:8)

所以,我找到了答案。您需要用双引号(“)替换单引号('),然后在JSON字符串(\”)中转义双引号。我认为这应该在Acralyzer documentation中提及,以便Windows用户不需要额外的步骤来找到解决方案。

curl -X PUT -u myUsername:myPassword http://kaydee.iriscouch.com/_users/org.couchdb.user:myNewUsername -d "{\"name\":\"myNewUsername\", \"password\":\"myNewUserPassword\", \"roles\":[\"reporter\", \"reader\"], \"type\":\"user\"}" -H "Content-Type: application/json"

答案 1 :(得分:-1)

我通过删除json中的空格来解决这个问题,但它确实有效。使用'curl'命令时,可能空格在参数中不起作用。如果您仍想保留空格,我建议您使用自己答案中的解决方案,否则请尝试删除空白。