我试图将新记录发布到我的MongoDB(实际的CouchDB),但似乎我的请求格式出现问题。
我使用以下代码: (不显示调试和验证)
WiFiClient client;
client.connect("172.16.1.4", 5984)
String connStr = "POST /iot/ HTTP/1.1\r\n"
"Host: user:password@172.16.1.4:5984/ \r\n"
"Content-Type: application/json\r\n"
"\r\n"
"'{\"a\":1}'\r\n\r\n";
client.print(connStr);
我得到了回复:
HTTP / 1.1 400错误请求
服务器:CouchDB / 1.6.1(Erlang OTP / 18)
日期:星期六,2017年10月7日11:57:50 GMT
内容类型:text / plain;字符集= UTF-8
内容长度:48缓存控制:必须重新验证
{"错误":" bad_request","原因":" invalid_json"}
HTTP / 1.1 400坏了 请求服务器:MochiWeb / 1.0(你们中的任何人都得到了一个smint?)
日期:星期六,2017年10月7日11:57:50 GMT
内容长度:0
我尝试过使用不同的json / data ...
使用Linux - 我没有问题:
curl -X POST用户:password@172.16.1.4:5984 / iot / -H" Content-Type:application / json" -d' {" a":3}'
答案 0 :(得分:0)
问题可能出在{和}
之前的单引号(')而不是
"'{\"a\":1}'\r\n\r\n"
应该是
"{\"a\":1}\r\n\r\n"
答案 1 :(得分:0)
我错过了这条线:
"Content-Length: " + String(json.length()) + "\r\n"
标题中的。