代码运行到request.GetResponse();出错,如果httpsair改为https://www.yahoo.com就没有问题,为什么?
static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback += ValidateServerCertificate;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
var httpsair = "https://github.com";
var request = HttpWebRequest.Create(httpsair) as HttpWebRequest;
request.Credentials = CredentialCache.DefaultCredentials;
var response = request.GetResponse();
string downloadedStr;
using (var stream = response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
downloadedStr = reader.ReadToEnd();
}
}
Console.WriteLine(downloadedStr);
Console.ReadLine();
}
public static bool ValidateServerCertificate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors == SslPolicyErrors.None)
return true;
Console.WriteLine("Certificate error: {0}", sslPolicyErrors);
// Do not allow this client to communicate with unauthenticated servers.
return false;
}