我必须在C(Arduino - > Energia)发送一个带有正文的POST,然后发出请求但是没有发送正文。
以下是控制台反馈:
将数据发送到服务器......
POST / temperature HTTP / 1.1
主持人:192.168.0.102
内容长度:13
{值:'30'}
回复代码:200 HTTP / 1.1 200确定
X-Powered-By:Express
内容类型: 应用/ JSON;字符集= UTF-8
内容长度:28 ETag:W /“1c-hvJwdxMoDderI2R105RV5ae / krI”
日期:2017年9月12日星期二,格林威治标准时间11:04:22
连接:保持活力
{“info”:“添加温度”
END
这是C中的代码(Arduino - > Energia):
if (client.connect(server, 3000)) {
String request = String("POST ") + (String)END_POINT + " HTTP/1.1\r\n" +
"Host: " + server + "\r\n" +
"Content-Length: " + dataToSend.length() + "\n\n" +
dataToSend;
client.print(request);
Serial.println(request);
String response = "";
while (client.connected()) {
response += client.readStringUntil('}');
}
Serial.println();
Serial.print("Response code: ");
Serial.println(response.substring(9, 12));
Serial.println(response);
Serial.println("END");
}
和json看起来像:
{
_id: "59b7b5169f699306290cacd2",
timestamp: "2017-09-12T10:21:10.538Z",
__v: 0
},
所以
{值:'30'}
无处可去。
答案 0 :(得分:0)
在每个标题行之后,必须有一个回车符和一个换行符 标题和正文之间需要一个空行。
您需要更改以下行
"Content-Length: " + dataToSend.length() + "\n\n" +
到
"Content-Length: " + dataToSend.length() + "\r\n\r\n" +