@@ -31,11 +31,6 @@ public class HttpClient : IHttpClient
31
31
/// </summary>
32
32
private long pendingCount = 0L ;
33
33
34
- /// <summary>
35
- /// HttpClientHandler提示者
36
- /// </summary>
37
- private readonly Func < HttpClientHandler > handlerProvider ;
38
-
39
34
/// <summary>
40
35
/// 获取关联的Http处理对象
41
36
/// </summary>
@@ -82,28 +77,13 @@ public long MaxResponseContentBufferSize
82
77
}
83
78
}
84
79
85
- /// <summary>
86
- /// 默认的HttpClient
87
- /// </summary>
88
- public HttpClient ( ) :
89
- this ( ( ) => new DefaultHttpClientHandler ( ) )
90
- {
91
- }
92
80
93
81
/// <summary>
94
82
/// 默认的HttpClient
95
83
/// </summary>
96
- /// <param name="handlerProvider">HttpClientHandler提供者,要求每调用一次返回一个新实例</param>
97
- /// <exception cref="ArgumentNullException"></exception>
98
- public HttpClient ( Func < HttpClientHandler > handlerProvider )
84
+ public HttpClient ( )
99
85
{
100
- if ( handlerProvider == null )
101
- {
102
- throw new ArgumentNullException ( nameof ( handlerProvider ) ) ;
103
- }
104
-
105
- this . handlerProvider = handlerProvider ;
106
- this . Handler = handlerProvider . Invoke ( ) ;
86
+ this . Handler = this . CreateHttpClientHandler ( ) ;
107
87
this . client = new System . Net . Http . HttpClient ( this . Handler ) ;
108
88
}
109
89
@@ -199,7 +179,7 @@ public bool SetProxy(IWebProxy proxy)
199
179
/// </summary>
200
180
private void InitWithoutProxy ( )
201
181
{
202
- var handler = this . handlerProvider . Invoke ( ) ;
182
+ var handler = this . CreateHttpClientHandler ( ) ;
203
183
this . CopyProperties ( this . Handler , handler ) ;
204
184
handler . UseProxy = false ;
205
185
handler . Proxy = null ;
@@ -212,6 +192,15 @@ private void InitWithoutProxy()
212
192
this . Handler = handler ;
213
193
}
214
194
195
+ /// <summary>
196
+ /// 创建HttpClientHandler的新实例
197
+ /// </summary>
198
+ /// <returns></returns>
199
+ protected virtual HttpClientHandler CreateHttpClientHandler ( )
200
+ {
201
+ return new DefaultHttpClientHandler ( ) ;
202
+ }
203
+
215
204
/// <summary>
216
205
/// 复制source的属性到target
217
206
/// </summary>
0 commit comments