mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-03 20:54:32 +02:00
esp_http_client: add head method support
Merges https://github.com/espressif/esp-idf/pull/2093
This commit is contained in:
committed by
Ivan Grokhotkov
parent
1c7a8b3b71
commit
483c3d7a7b
@@ -130,7 +130,8 @@ static const char *HTTP_METHOD_MAPPING[] = {
|
|||||||
"POST",
|
"POST",
|
||||||
"PUT",
|
"PUT",
|
||||||
"PATCH",
|
"PATCH",
|
||||||
"DELETE"
|
"DELETE",
|
||||||
|
"HEAD"
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -695,6 +696,11 @@ static int esp_http_client_get_data(esp_http_client_handle_t client)
|
|||||||
if (client->state < HTTP_STATE_RES_COMPLETE_HEADER) {
|
if (client->state < HTTP_STATE_RES_COMPLETE_HEADER) {
|
||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (client->connection_info.method == HTTP_METHOD_HEAD) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
esp_http_buffer_t *res_buffer = client->response->buffer;
|
esp_http_buffer_t *res_buffer = client->response->buffer;
|
||||||
|
|
||||||
ESP_LOGD(TAG, "data_process=%d, content_length=%d", client->response->data_process, client->response->content_length);
|
ESP_LOGD(TAG, "data_process=%d, content_length=%d", client->response->data_process, client->response->content_length);
|
||||||
|
@@ -76,6 +76,7 @@ typedef enum {
|
|||||||
HTTP_METHOD_PUT, /*!< HTTP PUT Method */
|
HTTP_METHOD_PUT, /*!< HTTP PUT Method */
|
||||||
HTTP_METHOD_PATCH, /*!< HTTP PATCH Method */
|
HTTP_METHOD_PATCH, /*!< HTTP PATCH Method */
|
||||||
HTTP_METHOD_DELETE, /*!< HTTP DELETE Method */
|
HTTP_METHOD_DELETE, /*!< HTTP DELETE Method */
|
||||||
|
HTTP_METHOD_HEAD, /*!< HTTP HEAD Method */
|
||||||
HTTP_METHOD_MAX,
|
HTTP_METHOD_MAX,
|
||||||
} esp_http_client_method_t;
|
} esp_http_client_method_t;
|
||||||
|
|
||||||
|
@@ -35,6 +35,7 @@ def test_examples_protocol_esp_http_client(env, extra_data):
|
|||||||
dut1.expect(re.compile(r"HTTP PUT Status = 200, content_length = (\d)"))
|
dut1.expect(re.compile(r"HTTP PUT Status = 200, content_length = (\d)"))
|
||||||
dut1.expect(re.compile(r"HTTP PATCH Status = 200, content_length = (\d)"))
|
dut1.expect(re.compile(r"HTTP PATCH Status = 200, content_length = (\d)"))
|
||||||
dut1.expect(re.compile(r"HTTP DELETE Status = 200, content_length = (\d)"))
|
dut1.expect(re.compile(r"HTTP DELETE Status = 200, content_length = (\d)"))
|
||||||
|
dut1.expect(re.compile(r"HTTP HEAD Status = 200, content_length = (\d)"))
|
||||||
dut1.expect(re.compile(r"HTTP Basic Auth Status = 200, content_length = (\d)"))
|
dut1.expect(re.compile(r"HTTP Basic Auth Status = 200, content_length = (\d)"))
|
||||||
dut1.expect(re.compile(r"HTTP Basic Auth redirect Status = 200, content_length = (\d)"))
|
dut1.expect(re.compile(r"HTTP Basic Auth redirect Status = 200, content_length = (\d)"))
|
||||||
dut1.expect(re.compile(r"HTTP Digest Auth Status = 200, content_length = (\d)"))
|
dut1.expect(re.compile(r"HTTP Digest Auth Status = 200, content_length = (\d)"))
|
||||||
|
@@ -136,6 +136,18 @@ static void http_rest()
|
|||||||
ESP_LOGE(TAG, "HTTP DELETE request failed: %s", esp_err_to_name(err));
|
ESP_LOGE(TAG, "HTTP DELETE request failed: %s", esp_err_to_name(err));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//HEAD
|
||||||
|
esp_http_client_set_url(client, "http://httpbin.org/get");
|
||||||
|
esp_http_client_set_method(client, HTTP_METHOD_HEAD);
|
||||||
|
err = esp_http_client_perform(client);
|
||||||
|
if (err == ESP_OK) {
|
||||||
|
ESP_LOGI(TAG, "HTTP HEAD Status = %d, content_length = %d",
|
||||||
|
esp_http_client_get_status_code(client),
|
||||||
|
esp_http_client_get_content_length(client));
|
||||||
|
} else {
|
||||||
|
ESP_LOGE(TAG, "HTTP HEAD request failed: %s", esp_err_to_name(err));
|
||||||
|
}
|
||||||
|
|
||||||
esp_http_client_cleanup(client);
|
esp_http_client_cleanup(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user