HTTP请求在没有正文的esp8266中POST

时间:2017-03-26 04:25:44

标签: arduino httprequest esp8266

我在通过esp8266发布HTTP请求时收到HTTP错误代码411。请求必须分块或具有内容长度,但我的http请求没有正文。我该怎么做才能发布它?

 Serial.print("Requesting POST: ");
client.println("POST /communitysafeapi/Alert/1/1/0 HTTP/1.1");
client.println("Host: camilledata.cloudapp.net");
client.println("Accept: */*");
client.println("Content-Type: application/json");
//client.print("Content-Length: ");
//client.println(content.length());
client.println();

2 个答案:

答案 0 :(得分:2)

使用没有正文的HTTP发布请求不是首选方法,但没关系。

来自IETF草案document

  

POST方法用于请求源服务器接受   请求中包含的表示作为要处理的数据   目标资源。

您可以将此添加到标题中,以避免出现411错误:

$_SESSION

如果想要在服务器端触发某个状态,OR将使用HTTP GET请求而不是帖子。

答案 1 :(得分:1)

我解决了以这种方式添加它的问题

client.println("Content-Length: "+String(0)+"");