我无法从诸如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:'基础连接已关闭:连接意外关闭。'
答案 0 :(得分:0)
我能够通过使用提琴手并启用 Decrypt HTTPS Traffic (解密HTTPS流量)选项来解决此问题,这样我就可以看到正在发出的请求并将其转换为C#代码。