|
@@ -330,15 +330,13 @@ bool HTTPRequest::_update_connection() {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- if (client->is_response_chunked()) {
|
|
|
- body_len = -1; // No body len because chunked, change your webserver configuration if you want body len
|
|
|
- } else {
|
|
|
- body_len = client->get_response_body_length();
|
|
|
+ // No body len (-1) if chunked or no content-length header was provided.
|
|
|
+ // Change your webserver configuration if you want body len.
|
|
|
+ body_len = client->get_response_body_length();
|
|
|
|
|
|
- if (body_size_limit >= 0 && body_len > body_size_limit) {
|
|
|
- call_deferred("_request_done", RESULT_BODY_SIZE_LIMIT_EXCEEDED, response_code, response_headers, PoolByteArray());
|
|
|
- return true;
|
|
|
- }
|
|
|
+ if (body_size_limit >= 0 && body_len > body_size_limit) {
|
|
|
+ call_deferred("_request_done", RESULT_BODY_SIZE_LIMIT_EXCEEDED, response_code, response_headers, PoolByteArray());
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
if (download_to_file != String()) {
|
|
@@ -378,6 +376,9 @@ bool HTTPRequest::_update_connection() {
|
|
|
call_deferred("_request_done", RESULT_SUCCESS, response_code, response_headers, body);
|
|
|
return true;
|
|
|
}
|
|
|
+ } else if (client->get_status() == HTTPClient::STATUS_DISCONNECTED) {
|
|
|
+ // We read till EOF, with no errors. Request is done.
|
|
|
+ call_deferred("_request_done", RESULT_SUCCESS, response_code, response_headers, body);
|
|
|
}
|
|
|
|
|
|
return false;
|