HTTPS GET request работает на esp32 но не на esp8266
Я пытаюсь портировать свою программу esp32 на esp8266, и я столкнулся с проблемой, когда я не могу получить ответ от HTTPS GET запроса на esp8266, но на esp32 тот же код работает нормально. Функция, которую я использую, выглядит так:
void GetHTTP()
{
if (WiFi.status() == WL_CONNECTED)
{
HTTPClient http;
http.begin(requestURL);
int httpCode = http.GET();
if (httpCode > 0)
{
requestData = http.getString();
GenerateTable();
//GetDelimiterCount(requestData, delimiterStart);
}
http.end();
}
}
Я также попытался запустить свой запрос с помощью esp8266 "BasicHttpsClient" и "Basichttpsclient", и в обоих случаях программа возвращает ошибку: "соединение не удалось" из https.errorToString(HttpCode).s_str()
или http-код "-1" без каких-либо специфических кодов ошибок API.
Я запрашиваю от Trafiklab realtime infromation v4 API, и запрос выглядит примерно так:
https://api.sl.se/api2/realtimedeparturesV4.json?
Я опустил ключ API и параметры, которые я использую из этого URL-адреса. Ответ также является правильным, когда его запрашивает любой браузер.
Может быть, это как-то связано с SSL? Я совершенно не понимаю, в чем могут быть различия между http-клиентскими библиотеками esp32 и esp8266. Я также использую последнюю версию библиотек плат ESP8266 (2.7.4).
@Boyfinn, 👍1
Обсуждение1 ответ
Лучший ответ:
Я закончил тем, что использовал
ESP8266WiFi.h
вместо этого
ESP8266WiFiMulti.h
Это исправило как мой исходный код, так и базовый пример HTTPS. Хотя я до сих пор не понимаю, какая разница.
- esp32 http client response только 200 не получил данные после этого
- Драйверы для чипа последовательного порта CH9102X
- ESP32: отключить детектор отключения питания
- Преобразование строки в IP-адрес
- Какую плату выбрать в PlatformIO для ESP Wroom 32?
- esp32 Stack canary watchpoint срабатывает
- Постоянная частота дискретизации АЦП на ESP8266 или ESP32
- ESP32S v1.1 NodeMCU vs ESP32 DevKitV1
см. примеры библиотеки ESP8266HttpClient, @Juraj
Я сделал. Я упоминал об этом в своем первоначальном посте., @Boyfinn
посмотри еще раз. сосредоточьтесь на первом параметре
http.begin
в BasicHttpsClient, @Juraj