.NET IHttpClientFactory: configurar o proxy do cliente nomeado
Anexe um proxy ao handler primário de um cliente nomeado do IHttpClientFactory e recupere esse mesmo nome no ponto de chamada.
Um proxy configurado para um HttpClient nomeado não configura automaticamente todos os clientes retornados pelo IHttpClientFactory. Mantenha o nome do registro e o nome solicitado juntos.
services.AddHttpClient("via-proxy")
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
{
Proxy = new WebProxy("http://203.0.113.10:8080"),
UseProxy = true
});Em seguida, recupere essa configuração nomeada:
var client = factory.CreateClient("via-proxy");O endpoint é ilustrativo. Para solicitações permitidas a serviços públicos, a lista de proxies HTTP fornece candidatos para a URL do WebProxy do cliente nomeado. Criar o cliente padrão sem nome em outro lugar é uma consulta diferente, mesmo que ambos venham da mesma fábrica injetada.
Configure o comportamento de proxy no nível da conexão no handler primário, em vez de tratá-lo como um cabeçalho de solicitação de destino. A fábrica pode gerenciar o ciclo de vida dos handlers separadamente dos objetos HttpClient que retorna.
Se um cliente tipado ou outro SDK for o responsável pela chamada, verifique qual registro fornece seu HttpClient. Um cliente nomeado corretamente configurado que nunca é usado não afeta o caminho de rede desse SDK.
Use esta configuração para uma política de roteamento estável. Alterar um handler ativo entre operações continua sendo um problema separado de concorrência e ciclo de vida.