LenovoLegionToolkit
46 строк · 1.2 Кб
1using System;
2using System.Net;
3using System.Net.Http;
4
5namespace LenovoLegionToolkit.Lib;
6
7public class HttpClientFactory
8{
9private Uri? _url;
10private string? _username;
11private string? _password;
12private bool _allowAllCerts;
13
14public HttpClientHandler CreateHandler()
15{
16var handler = new HttpClientHandler();
17
18if (_url is not null)
19{
20handler.UseProxy = true;
21handler.Proxy = new WebProxy(_url)
22{
23UseDefaultCredentials = false,
24BypassProxyOnLocal = false,
25};
26
27if (_username is not null && _password is not null)
28handler.DefaultProxyCredentials = new NetworkCredential(_username, _password);
29
30if (_allowAllCerts)
31handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
32}
33
34return handler;
35}
36
37public HttpClient Create() => new(CreateHandler(), true);
38
39public void SetProxy(Uri? url, string? username, string? password, bool allowAllCerts)
40{
41_url = url;
42_username = username;
43_password = password;
44_allowAllCerts = allowAllCerts;
45}
46}
47