42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
|
|
using System.Net.Http;
|
|||
|
|
|
|||
|
|
namespace YY.Admin.Module
|
|||
|
|
{
|
|||
|
|
public static class HttpClientExtensions
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
public static void AddHttpClient(this IContainerRegistry containerRegistry)
|
|||
|
|
{
|
|||
|
|
containerRegistry.RegisterSingleton<HttpClient>(() =>
|
|||
|
|
{
|
|||
|
|
var handler = new SocketsHttpHandler
|
|||
|
|
{
|
|||
|
|
// 连接池大小
|
|||
|
|
MaxConnectionsPerServer = 50,
|
|||
|
|
|
|||
|
|
// 最大存活时间(绝对时间)
|
|||
|
|
PooledConnectionLifetime = TimeSpan.FromMinutes(5),
|
|||
|
|
|
|||
|
|
// 空闲连接超时时间,超时后自动回收
|
|||
|
|
PooledConnectionIdleTimeout = TimeSpan.FromMinutes(2),
|
|||
|
|
|
|||
|
|
// 是否自动重试
|
|||
|
|
AutomaticDecompression = System.Net.DecompressionMethods.GZip |
|
|||
|
|
System.Net.DecompressionMethods.Deflate
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
var client = new HttpClient(handler)
|
|||
|
|
{
|
|||
|
|
// 默认超时时间 30秒
|
|||
|
|
Timeout = TimeSpan.FromSeconds(30)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
client.DefaultRequestHeaders.UserAgent.ParseAdd("YY.Admin");
|
|||
|
|
|
|||
|
|
return client;
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|