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;
}
}
}

 

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告