zoukankan      html  css  js  c++  java
  • 访问https接口报错 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系

    在网上查阅了资料找到了解决方案,大致如下

    调用http访问前加上这句话

    ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();  
    
    internal class AcceptAllCertificatePolicy : ICertificatePolicy
        {
            public AcceptAllCertificatePolicy()
            {
            }
    
            public bool CheckValidationResult(ServicePoint sPoint,
               X509Certificate cert, WebRequest wRequest, int certProb)
            {
                // Always accept
                return true;
            }
        }

    这么写有点麻烦,但是能解决问题

    查看了ServerCertificateValidationCallback属性,发现它的类型为RemoteCertificateValidationCallback的委托,为何不直接写一个参数相同的方法直接返回true呢

    public delegate bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors);

    解决方案

    ServicePointManager.ServerCertificateValidationCallback = Callback;
    
            private static bool Callback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
            {
                return true;
            }
  • 相关阅读:
    三极管8050和8550对管的参数
    三极管9014 管脚
    水深不语,人稳不言
    编译结果分析
    三母运算符
    C语言关键词解释
    51定时器初值的计算
    聪明人都在远离手机虚假繁荣的“人脉”关系
    每段路,都是一种领悟
    你的灯亮着吗读后感二
  • 原文地址:https://www.cnblogs.com/ljy0905/p/14149979.html
Copyright © 2011-2022 走看看