Hello
In visual code i updated to frame work esp platform 4.4,
before this update i could do an http request to get the position of the ISS station.
void http_iss(void * pvParam)
{
esp_http_client_config_t config ;
config.url = ISS_SERVER.serverName;
config.transport_type = HTTP_TRANSPORT_OVER_TCP;
config.event_handler = _http_event_handler;
config.buffer_size = 2048;
esp_http_client_handle_t client = esp_http_client_init(&config);
ISS_SERVER.ISS_Json ="";
for(;;)
{
esp_http_client_set_header(client,"Content-Typ","application/json");
esp_http_client_set_header(client,"Connection" ,"Keep-Alive");
esp_http_client_set_header(client,"Keep-Alive" ,"timeout=5");
esp_err_t err = esp_http_client_perform(client);
Serial.printf("xxxxxxxxxxxxxxxxxx");
if (err == ESP_OK)
{
char *buffer = (char *) malloc(MAX_HTTP_RECV_BUFFER + 1); // http receive buffer
esp_http_client_read(client,buffer,esp_http_client_get_content_length(client)); //{"name":"iss","id":25544,"latitude":-16.048352510626,"longitude":-23.31397684452,"altitude":422.82941853046,"velocity":27564.33986479,"visibility":"daylight","footprint":4521.8303508566,"timestamp":1652553547,"daynum":2459714.2771644,"solar_lat":18.760279280377,"solar_lon":259.31318637856,"units":"kilometers"}
if ( esp_http_client_get_status_code(client) == 200)
{
char *dummy = (char *) malloc(esp_http_client_get_content_length(client)+1);
memcpy(dummy,buffer,esp_http_client_get_content_length(client));
dummy[esp_http_client_get_content_length(client)] = 0;
//Serial.printf("%d\n%s\n",esp_http_client_get_content_length(client),dummy);
ISS_SERVER.ISS_Json = "";
int content_lenght = 0;
content_lenght = esp_http_client_get_content_length(client);
for (int i=0;i<content_lenght;i++) {
ISS_SERVER.ISS_Json += buffer; //convert to string
}
DynamicJsonDocument ISS_json(512);
deserializeJson(ISS_json,ISS_SERVER.ISS_Json);
ISS_DATA.Altitude = ISS_json["altitude"];
ISS_DATA.lat = ISS_json["latitude"];
ISS_DATA.lon = ISS_json["longitude"];
ISS_DATA.Velocity = ISS_json["velocity"];
//ISS_DATA.Visibility = ISS_json["visibility"];
//Serial.printf("%.4f\t%.4f\t%.4f\t%.4f\n",ISS_DATA.Altitude,ISS_DATA.lat,ISS_DATA.lon,ISS_DATA.Velocity);
}
free(buffer);
}
err = esp_http_client_close(client);
assert(xQueueOverwrite(ISS_queue,&ISS_DATA));
Now after the update, i cant get it back on work
i have the next error:
E (148961) esp-tls-mbedtls: No server verification option set in esp_tls_cfg_t structure. Check esp_tls API reference
E (148961) esp-tls-mbedtls: Failed to set client configurations, returned [0x8017] (ESP_ERR_MBEDTLS_SSL_SETUP_FAILED)
E (148971) esp-tls: create_ssl_handle failed
E (148981) esp-tls: Failed to open new connection
E (148981) TRANSPORT_BASE: Failed to open a new connection
E (148991) HTTP_CLIENT: Connection failed, sock < 0
i found that i have to
You need certificate to make https requests. In case you dont want to implement this, just edit your sdkconfig "Allow potentially insecure options" -> true
"Skip server certificate verification by default" -> true
But i am on visual code, so i have to do this via the main.c file, any idea where and how to perform this action?
i just found this on the esp32 website
skip server verification: This is an insecure option provided in the ESP-TLS for testing purpose. The option can be set by enabling CONFIG_ESP_TLS_INSECURE and CONFIG_ESP_TLS_SKIP_SERVER_CERT_VERIFY in the ESP-TLS menuconfig. When this option is enabled the ESP-TLS will skip server verification by default when no other options for server verification are selected in the esp_tls_cfg_t structure.
Thanks
Http request to an https site
Re: Http request to an https site
Could you apply some formatting to your post? It's nearly impossible to read the way it is.
Something seems off: the error message you are posting is complaining about improper tls use, but the code you posted doesn't (seem) to use tls anywhere. Something else is probably the matter. Make sure the firmware you think you are using is actually flashed to the device.
Something seems off: the error message you are posting is complaining about improper tls use, but the code you posted doesn't (seem) to use tls anywhere. Something else is probably the matter. Make sure the firmware you think you are using is actually flashed to the device.
-
- Posts: 9708
- Joined: Thu Nov 26, 2015 4:08 am
Re: Http request to an https site
If you're using ESP-IDF and our extension for Visual Studio Code, you should be able to access menuconfig somewhere. I don't have that IDE installed, so I can't tell you where unfortunately, but it is in there.
Who is online
Users browsing this forum: No registered users and 30 guests