From 066f80e377408a94635d5f044c66418d0dc07f26 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期五, 07 九月 2018 15:07:37 +0800
Subject: [PATCH] update 猫耳sdk
---
System/HttpRequest/HttpBehaviour.cs | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/System/HttpRequest/HttpBehaviour.cs b/System/HttpRequest/HttpBehaviour.cs
index f28a99a..5e245f7 100644
--- a/System/HttpRequest/HttpBehaviour.cs
+++ b/System/HttpRequest/HttpBehaviour.cs
@@ -5,6 +5,8 @@
using System.Net;
using System.Text;
using System.IO;
+using System.Net.Security;
+using System.Security.Cryptography.X509Certificates;
public class HttpBehaviour : MonoBehaviour
{
@@ -55,6 +57,7 @@
request.ReadWriteTimeout = 2000;
request.Proxy = null;
request.KeepAlive = false;
+ ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidationCallback;
}
catch (Exception ex)
{
@@ -107,6 +110,50 @@
}
+ private static bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
+ {
+ if (sslPolicyErrors == SslPolicyErrors.None)
+ return true;
+
+ var _acceptCertificate = true;
+
+ if ((sslPolicyErrors &
+ SslPolicyErrors.RemoteCertificateNotAvailable) == SslPolicyErrors.RemoteCertificateNotAvailable)
+ {
+ _acceptCertificate = false;
+ }
+ else
+ {
+ if ((sslPolicyErrors &
+ SslPolicyErrors.RemoteCertificateNameMismatch) == SslPolicyErrors.RemoteCertificateNameMismatch)
+ {
+ _acceptCertificate = false;
+ }
+
+ if ((sslPolicyErrors &
+ SslPolicyErrors.RemoteCertificateChainErrors) == SslPolicyErrors.RemoteCertificateChainErrors)
+ {
+ foreach (X509ChainStatus item in chain.ChainStatus)
+ {
+ if (item.Status != X509ChainStatusFlags.RevocationStatusUnknown &&
+ item.Status != X509ChainStatusFlags.OfflineRevocation)
+ break;
+
+ if (item.Status != X509ChainStatusFlags.NoError)
+ {
+ _acceptCertificate = false;
+ }
+ }
+ }
+ }
+
+ if (_acceptCertificate == false)
+ {
+ _acceptCertificate = true;
+ }
+
+ return _acceptCertificate;
+ }
void Update()
{
if (Time.time > timeOut && !getResult)
--
Gitblit v1.8.0