wabbajack/Wabbajack.Lib/Http/ClientFactory.cs
2021-07-02 21:15:27 -06:00

41 lines
1.4 KiB
C#

using System;
using System.Net;
using System.Net.Security;
using System.Security.Authentication;
using Wabbajack.Common;
using SysHttp = System.Net.Http;
namespace Wabbajack.Lib.Http
{
public static class ClientFactory
{
private static SysHttp.SocketsHttpHandler _socketsHandler { get; }
public static SysHttp.HttpClient Client { get; }
internal static CookieContainer Cookies { get; }
static ClientFactory()
{
Cookies = new CookieContainer();
_socketsHandler = new SysHttp.SocketsHttpHandler
{
CookieContainer = Cookies,
MaxConnectionsPerServer = 20,
PooledConnectionLifetime = TimeSpan.FromMilliseconds(100),
PooledConnectionIdleTimeout = TimeSpan.FromMilliseconds(100),
AutomaticDecompression = DecompressionMethods.All,
};
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, errors) =>
{
if (Consts.UseNetworkWorkaroundMode)
return true;
return errors == SslPolicyErrors.None;
};
Client = new SysHttp.HttpClient(_socketsHandler);
Client.DefaultRequestHeaders.Add("User-Agent", Consts.UserAgent);
}
}
}