Get запрос

Здравствуйте! Отправляю запрос к сайту с погодой.
meteo38.ru/exp/t.js?st=uiii
Коннект проходит, а запрос возвращает ошибку. делаю так

WiFiClient w_client;  
if (!w_client.connect("meteo38.ru",443)) return false;                    
// Отправляем запрос
w_client.println(String(F("GET /exp/t.js?st=uiii")) + String(F(" HTTP/1.1\r\nHost: meteo38.ru\r\n\r\n"))); 

Возвращает “400 Bad Request”
Полный ответ:
“< html>
< head>< title>400 The plain HTTP request was sent to HTTPS port< /title>< /head>
< body>
< center>< h1>400 Bad Request< /h1>< /center>
< center>The plain HTTP request was sent to HTTPS port< /center>
< hr>nginx/1.18.0 (Ubuntu)< /center>
< /body>
< /html>”

Если делать тоже самое, только погоду получать от яндекса, то все хорошо.

WiFiClient w_client;  
if (!w_client.connect("yandex.com",443)) return false;                    
// Отправляем запрос
w_client.println(String(F("GET /time/sync.json?geo=63")) + String(F(" HTTP/1.1\r\nHost: yandex.com\r\n\r\n"))); 

Подскажите в чем ошибка в первом запросе к meteo38 .ru, ведь яндекс тоже с https?

А тот факт, что ты отправляешь не https, и получаешь ответ, тебя в этом вопросе никак не смущает?

а с yandex почему работает?

видимо строка запроса кривая

try{document.getElementById("meteo38_t_uiii").innerHTML='<a href="http://meteo38.ru/" style="color:#04d;text-decoration:none;">-20&deg;</a>';}catch(err){};

Ты реально не можешь сложить 2 и 2 и сделать логический вывод?

реально, не могу. разжуй мне пожалуйста, что нужно сделать, чтобы получить строку в ответе?

Нужно отправить https запрос

можешь написать как? какую библиотеку использовать и т.д?

Я аж встал со стульчака, чем же http запрос отличается от https?
Шифрования инициатор сервер, а не клиент. И это вроде как не относится к коду запроса. Поясни, пожалуйста, чтобы я знал.

Ошибка 400 говорит вам, что Вы не правильно сформулировали запрос. Повторите тот же самый запрос в своём браузере, я думаю она повторится. Если повторится - изучайте как правильно отправить запрос.

в браузере возвращает
try{document.getElementById(“meteo38_t_uiii”).innerHTML=‘< a href=“http://meteo38.ru/” style=“color:#04d;text-decoration:none;”>-20°’;}catch(err){};

Ну так если тебе браузер ошибку возвращает на запрос, что ты от МК хочешь? Добейся внятного ответа в браузере, потом тот же запрос в мк пихай

вот АПИ:

meteo API endpoints:
---

Stations by distance -
  /meteo/st/near?ll=LNG,LAT
  /meteo/st/near?lat=LAT&lng=LNG
    default parameters: &offset=0 &limit=10

Station info -
  /meteo/st/info?st=ST1,ST2,...

Hourly aggregations -
  /meteo/st/hourly?st=ST1,ST2,...&t0=TIME0&t1=TIME1
    TIME0, TIME1 - iso formatted timestamps

---
 

Нет. Клиент открывает tcp сессию и первым делом отправляет ClientHello.

Это точно работает и https тут не помеха:

<span id="meteo38_t_uiii"></span>
<script type="text/javascript" async="1"
 src="http://meteo38.ru/exp/t.js?st=uiii"></script>

38

Иркутск: 
<span id="meteo38_t_uiii"></span>
<script type="text/javascript" async="1"  src="http://meteo38.ru/exp/t.js?st=uiii">	</script>
<br>

Краби:	
<span id="meteo38_t_vtsg"></span>
<script type="text/javascript" async="1" src="http://meteo38.ru/exp/t.js?st=vtsg"></script>
<br>

Владивосток:
<span id="meteo38_t_uhww"></span>
<script type="text/javascript" async="1" src="http://meteo38.ru/exp/t.js?st=uhww"></script>
<br>
	
Абакан:
<span id="meteo38_t_unaa"></span>
<script type="text/javascript" async="1" src="http://meteo38.ru/exp/t.js?st=unaa"></script>	
<br>

Минводы:
<span id="meteo38_t_urmm"></span>
<script type="text/javascript" async="1" src="http://meteo38.ru/exp/t.js?st=urmm"></script>	
<br>