无法从ESP8266执行https POST请求

无法从ESP8266执行https POST请求,https,esp8266,arduino-esp8266,esp8266wifi,Https,Esp8266,Arduino Esp8266,Esp8266wifi,我们正在尝试从ESP8266向aws cloud发出HTTPS POST请求,但无法与服务器通信。 下面给出了代码片段: WiFiClientSecure client; char data[100]; DynamicJsonBuffer jsonBuffer; char host[] = "test.execute-api.us-east-1.amazonaws.com"; if (client.connect(host, 443)) { String URL = "/dev";

我们正在尝试从ESP8266向aws cloud发出HTTPS POST请求,但无法与服务器通信。 下面给出了代码片段:

WiFiClientSecure client;
char data[100];
DynamicJsonBuffer jsonBuffer;
char host[] = "test.execute-api.us-east-1.amazonaws.com";
if (client.connect(host, 443)) {
   String URL = "/dev";
   JsonObject& root = jsonBuffer.createObject();
   root["Id"] = 105132;
   sprintf(data, "{\"Id\":105132}");
   client.println("POST " + URL+ " HTTP/1.1");
   client.print("Host: " + (String)host);  
   client.println("User-Agent: arduino/1.0");
   client.println(data);
   client.println("Content-Type: application/json");
}
URL : https://test.execute-api.us-east-1.amazonaws.com/dev 
Header : Content-Type : application/json
Body : {"Id" : 105132 }
工作邮递员的要求如下:

WiFiClientSecure client;
char data[100];
DynamicJsonBuffer jsonBuffer;
char host[] = "test.execute-api.us-east-1.amazonaws.com";
if (client.connect(host, 443)) {
   String URL = "/dev";
   JsonObject& root = jsonBuffer.createObject();
   root["Id"] = 105132;
   sprintf(data, "{\"Id\":105132}");
   client.println("POST " + URL+ " HTTP/1.1");
   client.print("Host: " + (String)host);  
   client.println("User-Agent: arduino/1.0");
   client.println(data);
   client.println("Content-Type: application/json");
}
URL : https://test.execute-api.us-east-1.amazonaws.com/dev 
Header : Content-Type : application/json
Body : {"Id" : 105132 }

在请求正文之后有一个HTTP标头,并且缺少将标头与请求正文分开的空行。应该为POST request设置内容长度标头这是否足以发出HTTPS请求?您的代码不会显示您已经为SSL证书设置了指纹。有关实现,请参见示例。