|
|
@@ -206,10 +206,8 @@ static int http_on_status(http_parser *parser, const char *at, size_t length)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int http_on_header_field(http_parser *parser, const char *at, size_t length)
|
|
|
+static int http_on_header_event(esp_http_client_handle_t client)
|
|
|
{
|
|
|
- esp_http_client_t *client = parser->data;
|
|
|
-
|
|
|
if (client->current_header_key != NULL && client->current_header_value != NULL) {
|
|
|
ESP_LOGD(TAG, "HEADER=%s:%s", client->current_header_key, client->current_header_value);
|
|
|
client->event.header_key = client->current_header_key;
|
|
|
@@ -220,7 +218,13 @@ static int http_on_header_field(http_parser *parser, const char *at, size_t leng
|
|
|
client->current_header_key = NULL;
|
|
|
client->current_header_value = NULL;
|
|
|
}
|
|
|
+ return 0;
|
|
|
+}
|
|
|
|
|
|
+static int http_on_header_field(http_parser *parser, const char *at, size_t length)
|
|
|
+{
|
|
|
+ esp_http_client_t *client = parser->data;
|
|
|
+ http_on_header_event(client);
|
|
|
http_utils_append_string(&client->current_header_key, at, length);
|
|
|
|
|
|
return 0;
|
|
|
@@ -247,18 +251,7 @@ static int http_on_header_value(http_parser *parser, const char *at, size_t leng
|
|
|
static int http_on_headers_complete(http_parser *parser)
|
|
|
{
|
|
|
esp_http_client_handle_t client = parser->data;
|
|
|
-
|
|
|
- if (client->current_header_key != NULL && client->current_header_value != NULL) {
|
|
|
- ESP_LOGD(TAG, "HEADER=%s:%s", client->current_header_key, client->current_header_value);
|
|
|
- client->event.header_key = client->current_header_key;
|
|
|
- client->event.header_value = client->current_header_value;
|
|
|
- http_dispatch_event(client, HTTP_EVENT_ON_HEADER, NULL, 0);
|
|
|
- free(client->current_header_key);
|
|
|
- free(client->current_header_value);
|
|
|
- client->current_header_key = NULL;
|
|
|
- client->current_header_value = NULL;
|
|
|
- }
|
|
|
-
|
|
|
+ http_on_header_event(client);
|
|
|
client->response->status_code = parser->status_code;
|
|
|
client->response->data_offset = parser->nread;
|
|
|
client->response->content_length = parser->content_length;
|