使用 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 是有效的,那么给出了什么?
使用 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 是有效的,那么给出了什么?
答案与命令行中 JSON 字符串的格式有关。即使您键入它时它是正确的 JSON,命令行似乎必须在发送它之前重新格式化它。(也许其他人可以更详细地解释它为什么这样做。)要解决这个问题,您需要在命令行如下:
curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"""valid""":"""json"""}
看到多余的引号了吗?这应该可以工作并返回带有 id 和修订号的“ok:true”。
您还必须引用整个声明以支持空格,例如: -d "{\"title\":\"There is Nothing Left to Lose\" , \"artist\":\"Foo Fighters\"}"