我试图让我的 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("Connec
tion: 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;
}
}