草图在几次http请求后冻结

时间:2016-04-26 17:19:17

标签: http arduino esp8266

我在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);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

原来这一切都搞砸了。拿出来后一切正常。

   String string;
   while (client.available()) {
    string.concat((char)client.read());
   delay(1000);
}
 Serial.println(string);