diff --git a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp index ef74b7f3d..352d76dbf 100644 --- a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp +++ b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp @@ -354,11 +354,15 @@ int HTTPClient::sendRequest(const char * type, Stream * stream, size_t size) { if(buff) { // read all data from stream and send it to server - while(connected() && stream->available() && (len > 0 || len == -1)) { + while(connected() && (stream->available() > -1) && (len > 0 || len == -1)) { // get available data size size_t s = stream->available(); + if(len) { + s = ((s > len) ? len : s); + } + if(s) { int c = stream->readBytes(buff, ((s > buff_size) ? buff_size : s));