@@ -9,6 +9,16 @@ namespace PCL.Neo.Core.Utils.Net;
9
9
/// </summary>
10
10
public static class StaticNet
11
11
{
12
+ private static readonly string SharedName ;
13
+
14
+ static StaticNet ( )
15
+ {
16
+ var sharedName = Guid . NewGuid ( ) . ToString ( ) [ ..8 ] ;
17
+ var clientInfo = HttpClientPool . AddHttpClient ( sharedName , new HttpClient ( ) , TimeSpan . FromMinutes ( 5 ) ) ;
18
+ clientInfo . InUse = false ;
19
+ SharedName = sharedName ;
20
+ }
21
+
12
22
/// <summary>
13
23
/// 发送无内容信息
14
24
/// </summary>
@@ -23,7 +33,7 @@ public static async Task<HttpResponseMessage> SendAsync(HttpMethod httpMethod, U
23
33
24
34
try
25
35
{
26
- var httpClient = new HttpClient ( ) ;
36
+ var httpClient = GetHttpClient ( ref token ) ;
27
37
if ( ! string . IsNullOrEmpty ( token ) )
28
38
{
29
39
httpClient . DefaultRequestHeaders . Authorization =
@@ -57,7 +67,7 @@ public static async Task<HttpResponseMessage> SendAsync(HttpRequestMessage reque
57
67
58
68
try
59
69
{
60
- var httpClient = new HttpClient ( ) ;
70
+ var httpClient = GetHttpClient ( ref token ) ;
61
71
if ( ! string . IsNullOrEmpty ( token ) )
62
72
{
63
73
httpClient . DefaultRequestHeaders . Authorization =
@@ -91,7 +101,7 @@ public static async Task<T> SendAsync<T>(HttpMethod httpMethod, Uri url, string?
91
101
92
102
try
93
103
{
94
- var httpClient = new HttpClient ( ) ;
104
+ var httpClient = GetHttpClient ( ref token ) ;
95
105
if ( ! string . IsNullOrEmpty ( token ) )
96
106
{
97
107
httpClient . DefaultRequestHeaders . Authorization =
@@ -136,7 +146,7 @@ public static async Task<T> SendAsync<T>(HttpRequestMessage request, string? tok
136
146
137
147
try
138
148
{
139
- var httpClient = new HttpClient ( ) ;
149
+ var httpClient = GetHttpClient ( ref token ) ;
140
150
if ( ! string . IsNullOrEmpty ( token ) )
141
151
{
142
152
httpClient . DefaultRequestHeaders . Authorization =
@@ -192,7 +202,7 @@ public static async Task<HttpResponseMessage> SendJsonAsync<TJson>(HttpMethod ht
192
202
request . Content = new StringContent ( jsonContent , Encoding . UTF8 , "application/json" ) ;
193
203
}
194
204
195
- var httpClient = new HttpClient ( ) ;
205
+ var httpClient = GetHttpClient ( ref token ) ;
196
206
if ( ! string . IsNullOrEmpty ( token ) )
197
207
{
198
208
httpClient . DefaultRequestHeaders . Authorization =
@@ -235,7 +245,7 @@ public static async Task<TResult> SendJsonAsync<TResult, TJson>(HttpMethod httpM
235
245
var jsonContent = JsonSerializer . Serialize ( content ) ;
236
246
request . Content = new StringContent ( jsonContent , Encoding . UTF8 , "application/json" ) ;
237
247
238
- var httpClient = new HttpClient ( ) ;
248
+ var httpClient = GetHttpClient ( ref token ) ;
239
249
if ( ! string . IsNullOrEmpty ( token ) )
240
250
{
241
251
httpClient . DefaultRequestHeaders . Authorization =
@@ -321,4 +331,18 @@ private static void LogError(HttpMethod httpMethod, string url, Exception except
321
331
322
332
NewLogger . Logger . LogError ( logMessage ) ;
323
333
}
334
+
335
+ private static HttpClient GetHttpClient ( ref string ? token )
336
+ {
337
+ if ( string . IsNullOrEmpty ( token ) )
338
+ {
339
+ return new HttpClient ( ) ;
340
+ }
341
+ else
342
+ {
343
+ var clientInfo = HttpClientPool . GetClient ( SharedName ) ;
344
+ clientInfo . InUse = false ;
345
+ return clientInfo . Client ;
346
+ }
347
+ }
324
348
}
0 commit comments