Я использую WebClient
для получения данных с веб-ресурса, таким образом:
var wc = new System.Net.WebClient();
var stream = wc.OpenRead("http://...");
// etc..
Раньше он работал до недавнего времени, когда сервер принудительно закрывал соединение.
На основена этом ответе StackOverflow я добавил параметр ServicePointManager
таким образом:
var wc = new System.Net.WebClient();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var stream = wc.OpenRead("http://...");
// etc..
… и он снова работает, как и раньше.
Я получаю этот TLSимеет отношение к HTTPS, и действие этого параметра заключается в том, что TLS1.2 включается в квитирование, и что сайт узла должен быть недавно обновлен, чтобы отклонить более старый уязвимый протокол, но почему это необходимо для обычногонезащищенный HTTP ?