我在ESP8266上有一个简单的草图,它向服务器发送http请求。它可以正常工作一两个请求,然后它只是挂起/冻结。它只是停止循环但没有任何错误。板本身工作正常如果我注释掉check connection
函数。它可能是我在检查连接中做得不对的事情吗?这是我的代码。任何帮助将不胜感激。谢谢你提前。
#include <ESP8266WiFi.h>
#define SSID "xxxxxxxx"
#define PASS_SSID "xxxxxxxx"
WiFiClient client;
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("debugger");
checkConnection();
String string;
while (client.available()) {
string.concat((char)client.read());
delay(1000);
}
Serial.println(string);
}
void checkConnection() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin(SSID, PASS_SSID);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
}
if (!client.connected()) {
if (client.connect("myapp.herokuapp.com", 80)) {
Serial.println("connected to client");
client.println("GET /api/users?data=25 HTTP/1.1");
client.println("Host: myapp.herokuapp.com");
client.println("Accept: */*");
client.println();
delay(1000);
}
}
}
答案 0 :(得分:0)
原来这一切都搞砸了。拿出来后一切正常。
String string;
while (client.available()) {
string.concat((char)client.read());
delay(1000);
}
Serial.println(string);