LenovoLegionToolkit

Форк
0
46 строк · 1.2 Кб
1
using System;
2
using System.Net;
3
using System.Net.Http;
4

5
namespace LenovoLegionToolkit.Lib;
6

7
public class HttpClientFactory
8
{
9
    private Uri? _url;
10
    private string? _username;
11
    private string? _password;
12
    private bool _allowAllCerts;
13

14
    public HttpClientHandler CreateHandler()
15
    {
16
        var handler = new HttpClientHandler();
17

18
        if (_url is not null)
19
        {
20
            handler.UseProxy = true;
21
            handler.Proxy = new WebProxy(_url)
22
            {
23
                UseDefaultCredentials = false,
24
                BypassProxyOnLocal = false,
25
            };
26

27
            if (_username is not null && _password is not null)
28
                handler.DefaultProxyCredentials = new NetworkCredential(_username, _password);
29

30
            if (_allowAllCerts)
31
                handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
32
        }
33

34
        return handler;
35
    }
36

37
    public HttpClient Create() => new(CreateHandler(), true);
38

39
    public 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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.