Răsfoiți Sursa

Merge branch 'bugfix/fix_http_head_request_v4.1' into 'release/v4.1'

esp_http_client: Fix HEAD request will affect the all next HTTP requests unless we close the HTTP request(backport v4.1)

See merge request espressif/esp-idf!15712
Mahavir Jain 4 ani în urmă
părinte
comite
9029ad44fa
1 a modificat fișierele cu 7 adăugiri și 0 ștergeri
  1. 7 0
      components/esp_http_client/esp_http_client.c

+ 7 - 0
components/esp_http_client/esp_http_client.c

@@ -248,6 +248,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;
 }