为什么Esp8266 HTTP客户端收不到数据?

Why Esp8266 HTTP client cannot receive data?

当我向浏览器输入 serverName 时,它 returns 一个 json 对象。但是在这里,它 Serial.print(payload) returns -1。 我该如何解决这个问题?

void loop() {
   if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
     
      HTTPClient http;  //Declare an object of class HTTPClient
     
      http.begin(serverName);  //Specify request destination
      int httpCode = http.GET();                                                                  
      //Send the request
     
      if (httpCode > 0) { //Check the returning code
     
         String payload = http.getString();   //Get the request response payload
         Serial.println(payload);                     //Print the response payload
      }
      http.end();   //Close connection
   }
     
   delay(10000);    //Send a request every 30 seconds
}

使用 http 而不是 https。

如果要使用 https,则必须指定服务器证书的 SHA1 指纹。如何做到这一点很容易用谷歌搜索。

有些图书馆会允许 client->setInsecure();,但我不会去那里,因为不安全。