Add http status enum & return ESP_FAIL as error code
This commit is contained in:
@@ -119,6 +119,8 @@ static esp_err_t _clear_connection_info(esp_http_client_handle_t client);
|
||||
#define DEFAULT_HTTP_PORT (80)
|
||||
#define DEFAULT_HTTPS_PORT (443)
|
||||
|
||||
#define HTTP_LENGTH_CHUNKED_ENCODING (-1)
|
||||
|
||||
static const char *DEFAULT_HTTP_USER_AGENT = "ESP32 HTTP Client/1.0";
|
||||
static const char *DEFAULT_HTTP_PROTOCOL = "HTTP/1.1";
|
||||
static const char *DEFAULT_HTTP_PATH = "/";
|
||||
@@ -133,6 +135,19 @@ static const char *HTTP_METHOD_MAPPING[] = {
|
||||
"DELETE"
|
||||
};
|
||||
|
||||
/**
|
||||
* Enum for the HTTP status codes.
|
||||
*/
|
||||
enum HttpStatus_Code
|
||||
{
|
||||
/* 3xx - Redirection */
|
||||
HttpStatus_MovedPermanently = 301,
|
||||
HttpStatus_Found = 302,
|
||||
|
||||
/* 4xx - Client Error */
|
||||
HttpStatus_Unauthorized = 401
|
||||
};
|
||||
|
||||
static esp_err_t http_dispatch_event(esp_http_client_t *client, esp_http_client_event_id_t event_id, void *data, int len)
|
||||
{
|
||||
esp_http_client_event_t *event = &client->event;
|
||||
@@ -525,14 +540,14 @@ static esp_err_t esp_http_check_response(esp_http_client_handle_t client)
|
||||
return ESP_ERR_HTTP_MAX_REDIRECT;
|
||||
}
|
||||
switch (client->response->status_code) {
|
||||
case 301:
|
||||
case 302:
|
||||
case HttpStatus_MovedPermanently:
|
||||
case HttpStatus_Found:
|
||||
ESP_LOGI(TAG, "Redirect to %s", client->location);
|
||||
esp_http_client_set_url(client, client->location);
|
||||
client->redirect_counter ++;
|
||||
client->process_again = 1;
|
||||
break;
|
||||
case 401:
|
||||
case HttpStatus_Unauthorized:
|
||||
auth_header = client->auth_header;
|
||||
http_utils_trim_whitespace(&auth_header);
|
||||
ESP_LOGI(TAG, "UNAUTHORIZED: %s", auth_header);
|
||||
@@ -675,7 +690,7 @@ esp_err_t esp_http_client_set_method(esp_http_client_handle_t client, esp_http_c
|
||||
static int esp_http_client_get_data(esp_http_client_handle_t client)
|
||||
{
|
||||
if (client->state < HTTP_STATE_RES_COMPLETE_HEADER) {
|
||||
return -1;
|
||||
return ESP_FAIL;
|
||||
}
|
||||
esp_http_buffer_t *res_buffer = client->response->buffer;
|
||||
|
||||
@@ -692,7 +707,7 @@ int esp_http_client_read(esp_http_client_handle_t client, char *buffer, int len)
|
||||
{
|
||||
esp_http_buffer_t *res_buffer = client->response->buffer;
|
||||
|
||||
int rlen = -1, ridx = 0;
|
||||
int rlen = ESP_FAIL, ridx = 0;
|
||||
if (res_buffer->raw_len) {
|
||||
int remain_len = client->response->buffer->raw_len;
|
||||
if (remain_len > len) {
|
||||
@@ -790,7 +805,7 @@ esp_err_t esp_http_client_perform(esp_http_client_handle_t client)
|
||||
int esp_http_client_fetch_headers(esp_http_client_handle_t client)
|
||||
{
|
||||
if (client->state < HTTP_STATE_REQ_COMPLETE_HEADER) {
|
||||
return -1;
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
client->state = HTTP_STATE_REQ_COMPLETE_DATA;
|
||||
@@ -800,7 +815,7 @@ int esp_http_client_fetch_headers(esp_http_client_handle_t client)
|
||||
while (client->state < HTTP_STATE_RES_COMPLETE_HEADER) {
|
||||
buffer->len = transport_read(client->transport, buffer->data, client->buffer_size, client->timeout_ms);
|
||||
if (buffer->len <= 0) {
|
||||
return -1;
|
||||
return ESP_FAIL;
|
||||
}
|
||||
http_parser_execute(client->parser, client->parser_settings, buffer->data, buffer->len);
|
||||
}
|
||||
@@ -903,7 +918,7 @@ esp_err_t esp_http_client_open(esp_http_client_handle_t client, int write_len)
|
||||
int esp_http_client_write(esp_http_client_handle_t client, const char *buffer, int len)
|
||||
{
|
||||
if (client->state < HTTP_STATE_REQ_COMPLETE_HEADER) {
|
||||
return -1;
|
||||
return ESP_FAIL;
|
||||
}
|
||||
int need_write;
|
||||
int wlen = 0, widx = 0;
|
||||
|
||||
Reference in New Issue
Block a user