ESP8266 client connection to MongoDB
I'm trying to post a new record to my MongoDB (actual CouchDB), but it seems that I'm having problems with the format of my request.
I'm using the following code: (not showing debug and validations)
WiFiClient client;
client.connect("172.16.1.4", 5984)
String connStr = "POST /iot/ HTTP/1.1rn"
            "Host: user:password@172.16.1.4:5984/ rn"
            "Content-Type: application/jsonrn"
            "rn"
            "'{"a":1}'rnrn";
client.print(connStr);
I get this response back:
 HTTP/1.1 400 Bad Request  
 Server: CouchDB/1.6.1 (Erlang OTP/18)  
 Date: Sat, 07 Oct 2017 11:57:50 GMT  
 Content-Type: text/plain;  charset=utf-8  
 Content-Length: 48 Cache-Control: must-revalidate  
{"error":"bad_request","reason":"invalid_json"}
 HTTP/1.1 400 Bad  
 Request Server: MochiWeb/1.0 (Any of you quaids got a smint?)  
 Date: Sat, 07 Oct 2017 11:57:50 GMT  
 Content-Length: 0  
I have tried with differet json/data...
Using Linux - I have no problems:
curl -X POST user:password@172.16.1.4:5984/iot/ -H "Content-Type: application/json" -d '{"a":3}'
The issue might be with the single quotes(') before { and at the end of }
instead of
 "'{"a":1}'rnrn"
it should be
 "{"a":1}rnrn"
I was missing the line:
"Content-Length: " + String(json.length()) + "rn"
in the header.
链接地址: http://www.djcxy.com/p/48554.html上一篇: HTTP POST和GET在Linux中使用cURL
下一篇: ESP8266客户端连接到MongoDB
