HttpClient - опять мелкомягким неймётся!
От: Kolesiki  
Дата: 20.04.19 00:58
Оценка: :))
Ребят, очередная лепёшка дерьма засада из стана мелкомягких:
Есть HttpClient (который типа новый путь взамен старого WebClient). Есть простейший сайт валют: www.x-rates.com (требующий https).
Пишем простейший код получения html странички:

var cli = new HttpClient();
var html = await cli.GetStringAsync(@"https://www.x-rates.com/");


Если сканпелять проект под .NET 4.6.1 — всё отлично, код работает, получили страничку.
Меняем на .NET 4.7.1+ — всё, кранты — не работает! Это как вообще так?? Пишет ошибку "удалённый сервер закрыл соединение".
Очевидно, танцоры-улучшатели уже наконопатили чего-то там внутрях, что совместимость нарушена, а то и вообще новый код получился нерабочий.

Я плюнул на их "косоногие хэлперы" и вот во время низкоуровневых игр с SslStream читаю доку на SslStream.AuthenticateAsClient():

Starting with .NET Framework 4.7, this method authenticates using None, which allows the operating system to choose the best protocol to use, and to block protocols that are not secure.


И вот тут меня осенило, откуда руки из *опы растут! Скорее всего HttpClient юзает низлежащий SslStream, где и получает отлуп.
Не кажется ли программирующей публике, что мелкомягкие опять охренели в край и своей "заботой о защите" ломают чужой код и отрезают программиста от половины тырнета? Причём даже без возможности специально указать HttpClient'у "хватит выёживаться своей диктатурой и дай нормально забрать страницу по чуть менее надёжному протоколу".
Кто-нибудь сталкивался с этими костылями и смог их обойти?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.