esp_http_client: Skip check for redirection counter if status code is success.

Set disable_auto_redirect in esp_http_client example to validate this condition in CI
This commit is contained in:
Shubham Kulkarni
2020-09-30 19:06:13 +05:30
parent 7ae3bb3298
commit 3194bba14d
3 changed files with 8 additions and 0 deletions

View File

@ -650,6 +650,9 @@ esp_err_t esp_http_client_set_redirection(esp_http_client_handle_t client)
static esp_err_t esp_http_check_response(esp_http_client_handle_t client)
{
if (client->response->status_code >= HttpStatus_Ok && client->response->status_code < HttpStatus_MultipleChoices) {
return ESP_OK;
}
if (client->redirect_counter >= client->max_redirection_count || client->disable_auto_redirect) {
ESP_LOGE(TAG, "Error, reach max_redirection_count count=%d", client->redirect_counter);
return ESP_ERR_HTTP_MAX_REDIRECT;

View File

@ -128,7 +128,11 @@ typedef struct {
* Enum for the HTTP status codes.
*/
typedef enum {
/* 2xx - Success */
HttpStatus_Ok = 200,
/* 3xx - Redirection */
HttpStatus_MultipleChoices = 300,
HttpStatus_MovedPermanently = 301,
HttpStatus_Found = 302,

View File

@ -81,6 +81,7 @@ static void http_rest_with_url()
esp_http_client_config_t config = {
.url = "http://httpbin.org/get",
.event_handler = _http_event_handler,
.disable_auto_redirect = true,
};
esp_http_client_handle_t client = esp_http_client_init(&config);