AppleII
AppleII
2015-08-01 13:47

HttpWebRequest访问https网站出错

  • httpwebrequest

代码运行到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;
    }
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答