Я пытаюсь сделать HTTPS PUT
из C ++ на ESP-EYE. Я начал с кода C esp_https_example и работал с тем же PEM и URL. Я начал переходить к использованию этого из C ++ как части проекта, который в основном написан на C ++. Мой вызов выглядит так:
static const char *URL = "https://signal.unexpectedeof.casa/on-air";
void https_with_url(void)
{
esp_http_client_config_t* config = (esp_http_client_config_t*)calloc(sizeof(esp_http_client_config_t), 1);
config->url = URL;
config->cert_pem = unexpectedeof_casa_root_cert_pem_start;
config->event_handler = _http_event_handler;
esp_http_client_handle_t client = esp_http_client_init(config);
esp_http_client_set_method(client, HTTP_METHOD_PUT);
esp_err_t err = esp_http_client_perform(client);
if (err == ESP_OK) {
ESP_LOGI(TAG, "HTTPS Status = %d, content_length = %d",
esp_http_client_get_status_code(client),
esp_http_client_get_content_length(client));
} else {
ESP_LOGE(TAG, "Error perform http request %s", esp_err_to_name(err));
}
esp_http_client_close(client);
esp_http_client_cleanup(client);
}
Я считаю, что предоставленный мной URL-адрес не копируется или инициализируется неправильно, что приводит к ошибке синтаксического анализа URL-адреса. Когда вызывается функция https_with_url
, я получаю эту ошибку:
E (13593) esp-tls: couldn't get hostname for :signal.unexpectedeof.casa:
E (13593) esp-tls: Failed to open new connection
E (13603) TRANS_SSL: Failed to open a new connection
E (13603) HTTP_CLIENT: Connection failed, sock < 0
E (13613) HTTPS_HANDLING: Error perform http request ESP_ERR_HTTP_CONNECT
I (13623) HTTPS_HANDLING: HTTP_EVENT_DISCONNECTED
I (13623) HTTPS_HANDLING: HTTP_EVENT_DISCONNECTED
Поскольку я использую C ++, но анализ происходит в коде esp-idf C, я подумал, что, возможно, я не передаю данные правильно, но не достигли большого прогресса. Переключение со встроенной строки для URL на отображаемый массив символов не имеет значения.
esp-idf
версия 4.1.