Выполнение аутентификации basi c для HttpClient с поддержкой прокси - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь получить доступ к некоторому ресурсу inte rnet с сервера за брандмауэром. Каждый раз, когда я делаю запрос, я получаю сообщение об ошибке от своего прокси. Он говорит, что я не аутентифицирован (код ошибки HTTP 407). Но я использую следующий код (я полагаю, он поддерживает прокси)

public class ProxyHttpClientFactory: HttpClientFactory {
  private readonly ICredentials _credentials;
  private readonly IWebProxy _proxy;

  public ProxyHttpClientFactory(ProxyOptions options) {
    _credentials = new NetworkCredential(options.Login, options.Password, options.ProxyUri);
    _proxy = new WebProxy {
      Address = new Uri(options.ProxyUri),
      Credentials = _credentials
    };
  }

  protected override HttpMessageHandler CreateHandler(CreateHttpClientArgs args) {
    return new CustomHandler(_proxy, _credentials);
  }
}

public CustomHandler(IWebProxy proxy, ICredentials credentials) {
  UseProxy = true;
  Proxy = proxy;
  Credentials = credentials;
  SslProtocols = SslProtocols.Tls12;
  UseCookies = false;
  ServerCertificateCustomValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>true;
}
...