我有一个简单的应用程序,它使用C#Web Client类下载网站HTML.这是我正在使用的代码的精简样本:
WebClient wc = new WebClient();
wc.Headers.Add("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
htmlCode = wc.DownloadString("https://www.oig.hhs.gov/exclusions/exclusions_list.asp");
Run Code Online (Sandbox Code Playgroud)
网站证书似乎存在问题,因为我遇到了这个例外:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel." "The remote certificate is invalid according to the validation procedure.
如果您将链接复制并粘贴到浏览器中,则需要您在允许您查看网站之前同意风险.它是一个政府网站,所以我不担心任何病毒或任何东西.有没有告诉网络客户端绕过这个问题,并继续访问该网站?
Leo*_*ens 47
据我所知,这是因为他们使用无效或过期的SSL证书.您可以使用以下方法绕过(忽略)它:
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)
编辑2015:
这篇文章得到了很多赞成,但我很遗憾我的回答.它可能会删除您的错误,但它无法解决问题.接受任何SSL证书会使你在中间攻击中容易受到攻击,所以这通常是一个非常糟糕的主意.我将留下此答案以供将来参考,但请注意,您应尝试在根目录中解决问题,即确保SSL证书有效.
小智 15
试试这个:
你想要做的是,将证书安装到本地机器上.
如果不在代码中的过程将执行以下操作:
因此,您可以尝试查看这些其他问题,看看它们是否对您有所帮助:
尝试安装证书,如果要求继续,请查看是否再次访问该URL.
****编辑**:
我读了网站证书,这是因为证书与网站的网址不匹配.
一个简单的改变是:
htmlCode = wc.DownloadString("https://oig.hhs.gov/exclusions/exclusions_list.asp");
Run Code Online (Sandbox Code Playgroud)
只需删除www.
归档时间: |
|
查看次数: |
38190 次 |
最近记录: |