diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index fc2fbb4f2e..1e642d63da 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -356,19 +356,40 @@ static int http_on_chunk_header(http_parser *parser) esp_err_t esp_http_client_set_header(esp_http_client_handle_t client, const char *key, const char *value) { + if (client == NULL || client->request == NULL || client->request->headers == NULL || key == NULL || value == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_set(client->request->headers, key, value); } esp_err_t esp_http_client_get_header(esp_http_client_handle_t client, const char *key, char **value) { + if (client == NULL || client->request == NULL || client->request->headers == NULL || key == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_get(client->request->headers, key, value); } esp_err_t esp_http_client_delete_header(esp_http_client_handle_t client, const char *key) { + if (client == NULL || client->request == NULL || client->request->headers == NULL || key == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_delete(client->request->headers, key); } +esp_err_t esp_http_client_delete_all_headers(esp_http_client_handle_t client) +{ + if (client == NULL || client->request == NULL || client->request->headers == NULL) { + return ESP_ERR_INVALID_ARG; + } + + return http_header_clean(client->request->headers); +} + esp_err_t esp_http_client_get_username(esp_http_client_handle_t client, char **value) { if (client == NULL || value == NULL) { diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index d35a361900..510b09889f 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -487,6 +487,17 @@ esp_err_t esp_http_client_set_timeout_ms(esp_http_client_handle_t client, int ti */ esp_err_t esp_http_client_delete_header(esp_http_client_handle_t client, const char *key); +/** + * @brief Delete all http request headers + * + * @param[in] client The esp_http_client handle + * + * @return + * - ESP_OK + * - ESP_FAIL + */ +esp_err_t esp_http_client_delete_all_headers(esp_http_client_handle_t client); + /** * @brief This function will be open the connection, write all header strings and return *