From 890f541edf0f7d5674ef40581c36254113591c81 Mon Sep 17 00:00:00 2001 From: Shubham Kulkarni Date: Thu, 7 May 2020 11:39:46 +0530 Subject: [PATCH] esp_http_client: Add API to get URL from client Closes: https://github.com/espressif/esp-idf/issues/5115 --- components/esp_http_client/esp_http_client.c | 14 ++++++++++++++ .../esp_http_client/include/esp_http_client.h | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 732a18fcf..194a7ad06 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -1332,3 +1332,17 @@ int esp_http_client_read_response(esp_http_client_handle_t client, char *buffer, } return read_len; } + +esp_err_t esp_http_client_get_url(esp_http_client_handle_t client, char *url, const int len) +{ + if (client == NULL || url == NULL) { + return ESP_ERR_INVALID_ARG; + } + if (client->connection_info.host && client->connection_info.scheme && client->connection_info.path) { + snprintf(url, len, "%s://%s%s", client->connection_info.scheme, client->connection_info.host, client->connection_info.path); + return ESP_OK; + } else { + ESP_LOGE(TAG, "Failed to get URL"); + } + return ESP_FAIL; +} diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index b1c9aae32..8c2c148a9 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -511,6 +511,20 @@ bool esp_http_client_is_complete_data_received(esp_http_client_handle_t client); int esp_http_client_read_response(esp_http_client_handle_t client, char *buffer, int len); +/** + * @brief Get URL from client + * + * @param[in] client The esp_http_client handle + * @param[inout] url The buffer to store URL + * @param[in] len The buffer length + * + * @return + * - ESP_OK + * - ESP_FAIL + */ + +esp_err_t esp_http_client_get_url(esp_http_client_handle_t client, char *url, const int len); + #ifdef __cplusplus } #endif