项目中涉及到调用第三方的Https的WebService,我使用的是原始的HttpWebRequest。
代码中已经考虑到是Https,加上了SSL3协议,加上了委托调用。但偶尔还是会碰到
The request was aborted:Could not create SSL/TLS secure channel.
这样的错误。
于是根据这篇博客所说,将其改成使用Tls协议,看看有没有用。
if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))///https请求
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; //SSL3协议替换成TLS协议
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
webRequest = WebRequest.Create(url) as HttpWebRequest;
webRequest.ProtocolVersion = HttpVersion.Version10;
}
else
{
webRequest = WebRequest.Create(url) as HttpWebRequest;
}