乐鑫技术交流
直播中

百合子

8年用户 903经验值
擅长:控制/MCU
私信 关注
[问答]

ESP8266连接到api.openweathermap.org连接失败的原因?

我试图让我的 es8266 连接到 api.openweathermap.org,它第一次工作正常,但在设定的时间间隔后的第二个循环中它无法连接。我也确保在下一个连接之前关闭旧连接,我尝试了 10 分钟、1 分钟和 5 分钟的间隔,还在 client.connect() 之后添加了延迟。我已经使用 client.connected() 检查以确保它也已断开连接。
感谢您提供任何帮助或建议,谢谢。
下面是缩短的代码:
代码:全选void httpRequest() {
  client.stop();
  Serial.println("Making request");
  int con_val = client.connect(server, 80);
  Serial.println(con_val);
  if (con_val) {
    // GET request
    client.println("GET /data/2.5/weather?q="+City+"&units=metric&APPID=" +app_id+" HTTP/1.1");
    client.println("Host: api.openweathermap.org");
    client.println("User-Agent: ArduinoWiFi");
    client.println("Connection: close");
    client.println();
   
    unsigned long timeout = millis();
    while (client.available() == 0) {
      if (millis() - timeout > 5000) {
        Serial.println("Client timed out");
        client.stop();
        return;
      }
    }
   
    char c = 0;
    while (client.available()) {
       /* Verify JSON HERE */
      }
    }
  }
  else {
    Serial.println("Connection failed");
    return;
  }
}


                                       
               

更多回帖

发帖
×
20
完善资料,
赚取积分