C# 在安全站点上爬行

C# 在安全站点上爬行,c#,asp.net,C#,Asp.net,如果我想爬网一个有SSL证书的站点,我该怎么做 我知道C#和HttpWebRequest中有WebClient类,但是我需要做什么更改呢?你不需要做任何更改,除了url应该以“https”而不是“http”开头。只需在你的应用程序顶部添加这个 ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certifcate, X509Chain ch

如果我想爬网一个有SSL证书的站点,我该怎么做


我知道C#和HttpWebRequest中有
WebClient
类,但是我需要做什么更改呢?

你不需要做任何更改,除了url应该以“https”而不是“http”开头。

只需在你的应用程序顶部添加这个

    ServicePointManager.ServerCertificateValidationCallback += delegate(object sender,  X509Certificate certifcate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    return true;
};

这将使HttpWebRequest接受来自服务器的任何证书。

-1。虽然这是一种通常用于接受自签名证书的黑客行为,但它非常不安全,只有在尝试了所有其他选项并且知道风险(通常很严重)时才应该这样做。最好的选择是在发出请求的机器上安装服务器证书。我不同意-1。他说他要抓取一个网站,意思是按照我的阅读方式下载所有的页面。与一个或几个已知的交易网站进行通信我完全同意你的观点,你应该进行适当的证书认证。也不要同意-1。为什么他会在一开始就不信任的东西上爬行,而使用WebRequest的安全影响远远小于使用浏览器。米凯尔:如果此人在本地服务器上遇到“无效证书”问题,你的答案应该是正确的。告诉人们如果需要进行ssl爬网,只需将该委托添加到应用程序的顶部是不好的。实际上,我指的是爬网,就像访问页面一样。我想可能还有别的事。抱歉不够清晰。正确,这就是为什么我们有Request.Create()模式。