Semen Junior
New member
Вынужден обратиться за помощью.
Использую Visual Studio + Visual Micro для кода ESP8266. А так же "esp8266 core for Arduino".
В какой то момент эта функция перестала работать правильно:
Вывод:
Зависает на получении байт. Проверял ссылки и сайты, из браузера или даже через мобильную сеть с этого же ESP скачивается нормально, и даже как строку "http.getString()" можно правильно прочитать, просто мне нужно будет скачивать большие файлы!
Буду рад любой идее как вернуть работоспособность этому примеру.
Использую Visual Studio + Visual Micro для кода ESP8266. А так же "esp8266 core for Arduino".
В какой то момент эта функция перестала работать правильно:
Код:
void simple_WIFI_download(void) {
WiFiClient client;
HTTPClient http; // must be declared after WiFiClient for correct destruction order, because used by http.begin(client,...)
debug.print("[HTTP] begin...\n");
// configure server and url
http.begin(client, "http://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png");//"http://homeblinker.000webhostapp.com/files/esp-config/esp-config");
// http.begin(client, "jigsaw.w3.org", 80, "/HTTP/connection.html");
debug.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
debug.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK) {
// get length of document (is -1 when Server sends no Content-Length header)
int len = http.getSize();
// create buffer for read
uint8_t buff[64] = { 0 };
// or "by hand"
// get tcp stream
WiFiClient* stream = &client;
// read all data from server
while (http.connected() && (len > 0 || len == -1)) {
// read up to 128 byte
int c = stream->readBytes(buff, std::min((size_t)len, sizeof(buff)));
debug.printf("readBytes: %d\n", c);
if (!c) {
debug.println("read timeout");
//debug.println(http.getString());
}
// write it to debug
//debug.write(buff, c);
if (len > 0) { len -= c; }
}
debug.println();
debug.print("[HTTP] connection closed or file end.\n");
}
}
else {
debug.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
delay(60000);
}
Код:
[HTTP] begin...
[HTTP] GET...
[HTTP] GET... code: 200
readBytes: 0
read timeout
readBytes: 0
read timeout
readBytes: 0
read timeout
readBytes: 0
read timeout
Буду рад любой идее как вернуть работоспособность этому примеру.