From 9f875b8db56fa57a754533aef2f85c69b3e9b437 Mon Sep 17 00:00:00 2001 From: yuanjm Date: Thu, 28 Oct 2021 19:53:12 +0800 Subject: [PATCH] esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request Closes https://github.com/espressif/esp-idf/issues/7777 --- components/esp_http_client/esp_http_client.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index a9b0adbd2f..293f866a77 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -252,6 +252,13 @@ static int http_on_headers_complete(http_parser *parser) client->response->data_process = 0; ESP_LOGD(TAG, "http_on_headers_complete, status=%d, offset=%d, nread=%d", parser->status_code, client->response->data_offset, parser->nread); client->state = HTTP_STATE_RES_COMPLETE_HEADER; + if (client->connection_info.method == HTTP_METHOD_HEAD) { + /* In a HTTP_RESPONSE parser returning '1' from on_headers_complete will tell the + parser that it should not expect a body. This is used when receiving a response + to a HEAD request which may contain 'Content-Length' or 'Transfer-Encoding: chunked' + headers that indicate the presence of a body.*/ + return 1; + } return 0; }