首页 > 代码库 > C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

 这里因为的原因是https请求要检查证书,有些证书不正确的,网页不会正常展示内容,而会返回链接不安全,是否继续。不安全的链接是否继续。

详情参考:

C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。http://www.mamicode.com/info-detail-1628676.html

我的代码片段

using System.Net.Http;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Security.Authentication;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.Web;
using System.Text;
using System.Net;

namespace IronFury.Data
{
    public static class HttpClientType
    {
        public static readonly string CRUD = "CRUD";
        public static readonly string CRUD_CREATE = "C";
        public static readonly string CRUD_UPDATE = "U";
        public static readonly string CRUD_RETRIVE = "R";
        public static readonly string CRUD_DELETE = "D";
    }
    public static class CertificateTrust
    {
        //public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        //{   // 总是接受    
        //    return true;
        //}
        public static void SetCertificatePolicy()
        {
            ServicePointManager.ServerCertificateValidationCallback
                       += RemoteCertificateValidate;
        }  
        private static bool RemoteCertificateValidate(
           object sender, X509Certificate cert,
            X509Chain chain, SslPolicyErrors error)
        {
            
            System.Console.WriteLine("Warning, trust any certificate");
            return true;
        }
    } 
internal static string GetString(this HttpClient client) { CertificateTrust.SetCertificatePolicy(); var responseMessage = client.GetAsync("").Result; var result = responseMessage.Content.ReadAsStringAsync().Result; return result; } } }

 

C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。