这里因为的原因是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;
}
}
}