Skip to content

Commit 8d38e2e

Browse files
authored
Merge pull request dotnetcore#26 from heroy/util-web-ignoreSsl
web工具类,添加忽略ssl证书验证
2 parents 9a50219 + 58ba545 commit 8d38e2e

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/Util/Webs/Clients/HttpRequestBase.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.Collections.Generic;
33
using System.Net;
44
using System.Net.Http;
5+
using System.Net.Security;
6+
using System.Security.Cryptography.X509Certificates;
57
using System.Text;
68
using System.Threading.Tasks;
79
using Util.Helpers;
@@ -51,6 +53,11 @@ public abstract class HttpRequestBase<TRequest> where TRequest : IRequest<TReque
5153
/// 执行失败的回调函数
5254
/// </summary>
5355
private Action<string, HttpStatusCode> _failStatusCodeAction;
56+
/// <summary>
57+
/// ssl证书验证委托
58+
/// </summary>
59+
private Func<HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool> _ServerCertificateCustomValidationCallback;
60+
5461

5562
/// <summary>
5663
/// 初始化Http请求
@@ -207,6 +214,15 @@ public TRequest OnFail( Action<string, HttpStatusCode> action ) {
207214
_failStatusCodeAction = action;
208215
return This();
209216
}
217+
/// <summary>
218+
/// 忽略Ssl
219+
/// </summary>
220+
/// <returns></returns>
221+
public TRequest IgnoreSsl()
222+
{
223+
_ServerCertificateCustomValidationCallback = (a, b, c, d) => true;
224+
return This();
225+
}
210226

211227
/// <summary>
212228
/// 获取内容类型
@@ -279,7 +295,7 @@ public async Task<string> ResultAsync() {
279295
/// 创建请求客户端
280296
/// </summary>
281297
private HttpClient CreateHttpClient() {
282-
return new HttpClient( new HttpClientHandler { CookieContainer = _cookieContainer } ) { Timeout = _timeout };
298+
return new HttpClient( new HttpClientHandler { CookieContainer = _cookieContainer, ServerCertificateCustomValidationCallback = _ServerCertificateCustomValidationCallback }) { Timeout = _timeout };
283299
}
284300

285301
/// <summary>

src/Util/Webs/Clients/IRequest.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@ public interface IRequest<out TRequest> where TRequest : IRequest<TRequest> {
8484
/// <param name="action">执行失败的回调函数,第一个参数为响应结果,第二个参数为状态码</param>
8585
TRequest OnFail( Action<string, HttpStatusCode> action );
8686
/// <summary>
87+
/// 忽略Ssl
88+
/// </summary>
89+
/// <returns></returns>
90+
TRequest IgnoreSsl();
91+
/// <summary>
8792
/// 获取结果
8893
/// </summary>
8994
Task<string> ResultAsync();

0 commit comments

Comments
 (0)