2017-10-07 11 views
0

MongoDB(実際のCouchDB)に新しいレコードを投稿しようとしていますが、リクエストのフォーマットに問題があるようです。ESP8266 MongoDBへのクライアント接続

私は次のコードを使用しています:(デバッグと検証を示すない) を

WiFiClient client; 
client.connect("172.16.1.4", 5984) 

String connStr = "POST /iot/ HTTP/1.1\r\n" 
      "Host: user:[email protected]: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)
日付:2007年10月7日土曜日11:57:50 GMT
コンテンツタイプ:text/plain; charset = UTF-8
のContent-Length:48のCache-Control: - 再検証しなければならない

{ "エラー": "bad_request"、 "理由": "invalid_json"}

HTTP /バート1.1 400
リクエストサーバ:MochiWeb/1.0(?あなたのどれquaidsがSMINTを得た)
日付:土、2017年10月7日11時57分50秒GMT
のContent-Length:0

私が試してみました違いがある

カール-X POSTユーザ:[email protected]:5984/IOT/-H「のContent-Type:アプリケーション/ JSON - JSON /データ... Linuxを使用して

私は問題がありません「-d '{ "A":3}'

答えて

0

問題が前{との末尾}

"'{\"a\":1}'\r\n\r\n" 

代わりに単一引用符( ')であるかもしれません

それは私がライン行方不明になった

"{\"a\":1}\r\n\r\n" 
+0

ありがとうございましたが、これは何の違いもありませんでした...: - / –

0

する必要があります:ヘッダに

"Content-Length: " + String(json.length()) + "\r\n" 

を。

関連する問題