diff --git a/libraries/ESP8266httpClient/examples/BasicHttpClient/BasicHttpClient.ino b/libraries/ESP8266httpClient/examples/BasicHttpClient/BasicHttpClient.ino index 23a5e49da..99df11e76 100644 --- a/libraries/ESP8266httpClient/examples/BasicHttpClient/BasicHttpClient.ino +++ b/libraries/ESP8266httpClient/examples/BasicHttpClient/BasicHttpClient.ino @@ -12,66 +12,87 @@ #include +#define USE_SERIAL Serial1 ESP8266WiFiMulti WiFiMulti; void setup() { - Serial.begin(115200); + USE_SERIAL.begin(115200); + // USE_SERIAL.setDebugOutput(true); - Serial.println(); - Serial.println(); - Serial.println(); + USE_SERIAL.println(); + USE_SERIAL.println(); + USE_SERIAL.println(); - - for(uint8_t t = 4; t > 0; t--) { - Serial.printf("[SETUP] WAIT %d...\n", t); - Serial.flush(); - delay(1000); - } + for(uint8_t t = 4; t > 0; t--) { + USE_SERIAL.printf("[SETUP] WAIT %d...\n", t); + USE_SERIAL.flush(); + delay(1000); + } WiFiMulti.addAP("SSID", "PASSWORD"); - //WiFi.disconnect(); - while(WiFiMulti.run() != WL_CONNECTED) { - delay(100); - } } void loop() { + // wait for WiFi connection if((WiFiMulti.run() == WL_CONNECTED)) { + httpClient http; - Serial.print("[HTTP] begin...\n"); - + USE_SERIAL.print("[HTTP] begin...\n"); + // configure traged server and url http.begin("192.168.1.12", 80, "/test.html"); - Serial.print("[HTTP] GET...\n"); - if(http.GET()) { + USE_SERIAL.print("[HTTP] GET...\n"); + // start connection and send HTTP header + int httpCode = http.GET(); + if(httpCode) { + // HTTP header has been send and Server response header has been handled - Serial.print("[HTTP] GET... ok.\n"); + USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode); - size_t len = http.getSize(); + // file found at server + if(httpCode == 200) { - uint8_t buff[128] = { 0 }; - WiFiClient stream = http.getStream(); - while(http.connected() && len > 0) { - size_t size = stream.available(); - int c = stream.readBytes(buff, ((size > 128) ? 128 : size)); + // get lenght of document (is -1 when Server sends no Content-Length header) + int len = http.getSize(); - Serial.write(buff, c); - len -= c; + // create buffer for read + uint8_t buff[128] = { 0 }; + + // get tcp stream + WiFiClient stream = http.getStream(); + + // read all data from server + while(http.connected() && (len > 0 || len == -1)) { + // get available data size + size_t size = stream.available(); + + if(size) { + // read up to 128 byte + int c = stream.readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size)); + + // write it to Serial + USE_SERIAL.write(buff, c); + + if(len > 0) { + len -= c; + } + } + delay(1); + } + + USE_SERIAL.println(); + USE_SERIAL.print("[HTTP] connection closed or file end.\n"); - delay(0); } - Serial.println(); - Serial.print("[HTTP] connection closed or file end.\n"); - } else { - - Serial.print("[HTTP] GET... fail.\n"); + USE_SERIAL.print("[HTTP] GET... faild, no connection or no HTTP server\n"); } - - delay(10000); } + + delay(10000); } +