8
8
9
9
#define MAX_HTTP_RECV_BUFFER 128
10
10
11
- static const char * TAG = "HTTP_HANDLER " ;
11
+ static const char * TAG = "HTTP_CLIENT " ;
12
12
13
- static esp_err_t _http_event_handler ( esp_http_client_event_t * evt )
13
+ int downloadAndSaveFile ( char * url , FILE * f , const char * cert_pem )
14
14
{
15
- switch (evt -> event_id ) {
16
- case HTTP_EVENT_ERROR :
17
- case HTTP_EVENT_ON_CONNECTED :
18
- case HTTP_EVENT_HEADER_SENT :
19
- case HTTP_EVENT_ON_FINISH :
20
- case HTTP_EVENT_DISCONNECTED :
21
- case HTTP_EVENT_ON_HEADER :
22
- break ;
23
- case HTTP_EVENT_ON_DATA :
24
- if (!esp_http_client_is_chunked_response (evt -> client )) {
25
- //fwrite((char*)evt->data, sizeof(uint8_t), evt->data_len, (FILE*)evt->user_data);
26
- }
27
- break ;
28
- }
29
- return ESP_OK ;
30
- }
31
-
32
- int downloadAndSaveFile (char * url , char * filename , FILE * f ) {
33
-
34
15
char * buffer = (char * )malloc (MAX_HTTP_RECV_BUFFER );
35
16
if (buffer == NULL ) {
36
17
return -1 ;
37
18
}
38
19
esp_http_client_config_t config = {
39
20
.url = url ,
40
- .event_handler = _http_event_handler ,
41
- .user_data = f ,
21
+ .cert_pem = cert_pem ,
22
+ .timeout_ms = 20000 ,
42
23
};
43
24
44
25
esp_http_client_handle_t client = esp_http_client_init (& config );
45
26
esp_err_t err ;
46
27
if ((err = esp_http_client_open (client , 0 )) != ESP_OK ) {
28
+ ESP_LOGE (TAG , "esp_http_client_open failed: %d" , err );
47
29
free (buffer );
48
30
return -1 ;
49
31
}
50
- int content_length = esp_http_client_fetch_headers (client );
32
+ int content_length = esp_http_client_fetch_headers (client );
51
33
int total_read_len = 0 , read_len ;
52
34
while (total_read_len < content_length ) {
53
35
read_len = esp_http_client_read (client , buffer , MAX_HTTP_RECV_BUFFER );
@@ -56,7 +38,9 @@ int downloadAndSaveFile(char* url, char* filename, FILE* f) {
56
38
break ;
57
39
}
58
40
total_read_len += read_len ;
41
+ ESP_LOGV (TAG , "esp_http_client_read data received: %d, total %d" , read_len , total_read_len );
59
42
}
43
+ ESP_LOGV (TAG , "connection closed, cleaning up, total %d bytes received" , total_read_len );
60
44
esp_http_client_close (client );
61
45
esp_http_client_cleanup (client );
62
46
free (buffer );
0 commit comments