AppleII 2015-08-01 13:47 采纳率: 0%
浏览 1940

HttpWebRequest访问https网站出错

代码运行到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条回答 默认 最新

  • oyljerry 2015-08-01 15:50
    关注

    先看你能不能访问github,可能网络被拦截了。

    评论

报告相同问题?