En proxy som konfigurerats för en namngiven HttpClient konfigurerar inte automatiskt alla klienter som IHttpClientFactory returnerar. Håll registreringsnamnet och det begärda namnet tillsammans.

services.AddHttpClient("via-proxy")
    .ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
    {
        Proxy = new WebProxy("http://203.0.113.10:8080"),
        UseProxy = true
    });

Hämta sedan den namngivna konfigurationen:

var client = factory.CreateClient("via-proxy");

Slutpunkten är illustrativ. För tillåtna anrop till offentliga tjänster erbjuder HTTP-proxylistan kandidater för den namngivna klientens WebProxy-URL. Att skapa standardklienten utan namn någon annanstans är en annan sökning, även om båda klienterna kommer från samma injicerade fabrik.

Konfigurera proxybeteendet på anslutningsnivå i den primära hanteraren i stället för att behandla det som ett destinationsrubrikfält. Fabriken kan hantera hanterarnas livslängd separat från de HttpClient-objekt den returnerar.

Om anropet ägs av en typad klient eller ett annat SDK, kontrollera vilken registrering som tillhandahåller dess HttpClient. En korrekt konfigurerad namngiven klient som aldrig används påverkar inte det SDK:ns nätverksväg.

Använd den här konfigurationen för en stabil routingpolicy. Att byta en aktiv hanterare mellan operationer är fortfarande ett separat samtidighets- och livslängdsproblem.

Relaterade artiklar