.NET IHttpClientFactory: configurar o proxy do cliente con nome
Anexe un proxy ao controlador principal dun cliente con nome de IHttpClientFactory e recupere ese mesmo nome no punto de chamada.
Un proxy configurado para un HttpClient con nome non configura automaticamente todos os clientes que devolve IHttpClientFactory. Manteña xuntos o nome do rexistro e o nome solicitado.
services.AddHttpClient("via-proxy")
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
{
Proxy = new WebProxy("http://203.0.113.10:8080"),
UseProxy = true
});A continuación, recupere esa configuración con nome:
var client = factory.CreateClient("via-proxy");O punto de conexión é ilustrativo. Para as solicitudes permitidas a servizos públicos, a lista de proxies HTTP ofrece candidatos para o URL de WebProxy do cliente con nome. Crear o cliente predeterminado sen nome noutro lugar é unha busca distinta, aínda que ambos os clientes veñan da mesma fábrica inxectada.
Configure o comportamento do proxy a nivel de conexión no controlador principal en lugar de tratalo como unha cabeceira de solicitude de destino. A fábrica pode xestionar as duracións dos controladores por separado dos obxectos HttpClient que devolve.
Se un cliente tipado ou outro SDK posúe a chamada, comprobe que rexistro fornece o seu HttpClient. Un cliente con nome correctamente configurado que nunca se usa non afecta á ruta de rede dese SDK.
Utilice esta configuración para unha política de enrutamento estable. Cambiar un controlador activo entre operacións segue sendo un problema aparte de concorrencia e duración.