使用cURL从Windows命令行运行以下命令,尝试将新文档发布到现有CouchDB数据库(命名为test)失败:
curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"valid":"json"}
它返回错误:
{"error":"bad_request","reason":"invalid_json"}
JSON是有效的,所以给出了什么?
答案 0 :(得分:12)
答案与命令行上JSON字符串的格式有关。即使你键入它是正确的JSON,它似乎必须在发送它之前重新格式化它。(也许其他人可以解释为什么它会更详细地解释它。)要解决这个问题,你需要逃避你的引用命令行如下:
curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"""valid""":"""json"""}
看到多余的引号?这应该工作并返回带有id和修订号的“ok:true”。
答案 1 :(得分:4)
你还必须引用整个声明以支持以下空格:-d“{\”title \“:\”没有什么可以失去\“,”艺术家“:\”Foo Fighters \“} “