我在通过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();
答案 0 :(得分:2)
使用没有正文的HTTP发布请求不是首选方法,但没关系。
来自IETF草案document:
POST方法用于请求源服务器接受 请求中包含的表示作为要处理的数据 目标资源。
您可以将此添加到标题中,以避免出现411错误:
$_SESSION
如果想要在服务器端触发某个状态,OR将使用HTTP GET请求而不是帖子。
答案 1 :(得分:1)
我解决了以这种方式添加它的问题
client.println("Content-Length: "+String(0)+"");