小编典典

如何使用WebRequest通过https访问SSL加密的站点?

c#

我正在编写一个程序,该程序从用户提供的URL中读取内容。我的问题是在代码中是这样的:

Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());

如果提供的 URL 是“ https://” URL ,这将中断。谁能帮助我更改此代码,以便它可以与SSL加密的内容一起使用。谢谢。


阅读 315

收藏
2020-05-19

共1个答案

小编典典

您正在按照正确的方式进行操作,但是用户可能会向安装了无效SSL证书的站点提供URL。如果在发出实际的Web请求之前放入以下行,则可以忽略这些证书问题:

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);

在哪里AcceptAllCertifications定义为

public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
    return true;
}
2020-05-19