Как исправить «Базовое соединение было закрыто: соединение было неожиданно закрыто» при создании запроса HttpWebRequest для определенных сайтов - PullRequest
0 голосов
/ 04 февраля 2019

Я не могу получить ответ от некоторых сайтов, таких как https://www.adidas.ca, но у меня нет проблем с достижением https://www.google.ca.

Я пробовал следующее:1. Установка SecurityProtocol = SecurityProtocolType.Tls |SecurityProtocolType.Tls11 |SecurityProtocolType.Tls12 |SecurityProtocolType.Ssl3;2. Установка KeepAlive = true;3. Установка соответствующих заголовков, таких как UserAgent, Accept-Encoding и Accept-Language.4. Использование Fiddler и Post-Man, чтобы увидеть разницу в запросе, который я делаю вручную, и из кода, чтобы увидеть, в чем может быть разница (я ничего не смог найти).

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | 
SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | 
SecurityProtocolType.Ssl3;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.adidas.com/");
request.KeepAlive = true;
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36";
request.Headers.Add("Accept-Encoding", "identity;q=1, *;q=0");
request.Headers.Add("Accept-Language", "en-US,en;q=0.5");
request.Method = "GET";
request.Accept = "*/*";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Я ожидал получитьответ 200, как я сделал из https://www.google.ca/,, но вместо этого получаю ошибку: System.Net.WebException: «Базовое соединение было закрыто: соединение было неожиданно закрыто.»

1 Ответ

0 голосов
/ 11 февраля 2019

Мне удалось решить эту проблему с помощью fiddler и включив опцию Расшифровать HTTPS Traffic , чтобы я мог видеть выполняемый запрос и преобразовать его в код C #.

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