克服 HTTPS 连接中 WebRequest 的 SSL 加密挑战
如果不加密,使用 WebRequest 访问 HTTPS 加密网站的内容可能会遇到障碍妥善处理。当尝试向此类网站发出请求时,可能会因 SSL 证书无效或类似问题而出现错误。
要解决此问题,您可以修改您提供的代码片段:
// Ignore any certificate validation errors ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); // Execute the original code Uri uri = new Uri(url); WebRequest webRequest = WebRequest.Create(uri); WebResponse webResponse = webRequest.GetResponse(); ReadFrom(webResponse.GetResponseStream());
下面定义的 AcceptAllCertifications 方法允许您绕过 SSL 证书验证错误:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
通过合并此修复,您可以确保您的程序可以成功访问来自 HTTPS 加密网站的内容,即使默认情况下 SSL 证书不被视为有效。
以上是在 HTTPS 连接中使用 WebRequest 时如何克服 SSL 证书验证错误?的详细内容。更多信息请关注PHP中文网其他相关文章!