http_request.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // http_request.c
  2. #include "esp_http_client.h"
  3. #include "esp_log.h"
  4. static const char *TAG = "http_request";
  5. // HTTP事件处理函数
  6. esp_err_t _http_event_handler(esp_http_client_event_t *evt)
  7. {
  8. switch (evt->event_id) {
  9. case HTTP_EVENT_ERROR:
  10. ESP_LOGD(TAG, "HTTP_EVENT_ERROR");
  11. break;
  12. case HTTP_EVENT_ON_CONNECTED:
  13. ESP_LOGD(TAG, "HTTP_EVENT_ON_CONNECTED");
  14. break;
  15. case HTTP_EVENT_ON_DATA:
  16. ESP_LOGD(TAG, "HTTP_EVENT_ON_DATA, len=%d", evt->data_len);
  17. if (evt->data_len) {
  18. ESP_LOGI(TAG, "Received data: %.*s", evt->data_len, (char*)evt->data);
  19. }
  20. break;
  21. case HTTP_EVENT_ON_FINISH:
  22. ESP_LOGD(TAG, "HTTP_EVENT_ON_FINISH");
  23. break;
  24. case HTTP_EVENT_DISCONNECTED:
  25. ESP_LOGI(TAG, "HTTP_EVENT_DISCONNECTED");
  26. break;
  27. default:
  28. break;
  29. }
  30. return ESP_OK;
  31. }
  32. // 发起一个简单的GET请求
  33. void http_get_request(void)
  34. {
  35. esp_http_client_config_t config = {
  36. .url = "http://60.204.139.57:6002/categories", // 替换为你要请求的URL
  37. .event_handler = _http_event_handler,
  38. };
  39. esp_http_client_handle_t client = esp_http_client_init(&config);
  40. // 执行GET请求
  41. esp_err_t err = esp_http_client_perform(client);
  42. if (err == ESP_OK) {
  43. ESP_LOGI(TAG, "HTTP GET Status = %d, content_length = %"PRId64,
  44. esp_http_client_get_status_code(client),
  45. esp_http_client_get_content_length(client));
  46. } else {
  47. ESP_LOGE(TAG, "HTTP GET request failed: %s", esp_err_to_name(err));
  48. }
  49. esp_http_client_cleanup(client);
  50. }