// http_request.c #include "esp_http_client.h" #include "esp_log.h" static const char *TAG = "http_request"; // HTTP事件处理函数 esp_err_t _http_event_handler(esp_http_client_event_t *evt) { switch (evt->event_id) { case HTTP_EVENT_ERROR: ESP_LOGD(TAG, "HTTP_EVENT_ERROR"); break; case HTTP_EVENT_ON_CONNECTED: ESP_LOGD(TAG, "HTTP_EVENT_ON_CONNECTED"); break; case HTTP_EVENT_ON_DATA: ESP_LOGD(TAG, "HTTP_EVENT_ON_DATA, len=%d", evt->data_len); if (evt->data_len) { ESP_LOGI(TAG, "Received data: %.*s", evt->data_len, (char*)evt->data); } break; case HTTP_EVENT_ON_FINISH: ESP_LOGD(TAG, "HTTP_EVENT_ON_FINISH"); break; case HTTP_EVENT_DISCONNECTED: ESP_LOGI(TAG, "HTTP_EVENT_DISCONNECTED"); break; default: break; } return ESP_OK; } // 发起一个简单的GET请求 void http_get_request(void) { esp_http_client_config_t config = { .url = "http://60.204.139.57:6002/categories", // 替换为你要请求的URL .event_handler = _http_event_handler, }; esp_http_client_handle_t client = esp_http_client_init(&config); // 执行GET请求 esp_err_t err = esp_http_client_perform(client); if (err == ESP_OK) { ESP_LOGI(TAG, "HTTP GET Status = %d, content_length = %"PRId64, esp_http_client_get_status_code(client), esp_http_client_get_content_length(client)); } else { ESP_LOGE(TAG, "HTTP GET request failed: %s", esp_err_to_name(err)); } esp_http_client_cleanup(client); }