Een proxy die voor één benoemde HttpClient is geconfigureerd, configureert niet automatisch elke client die IHttpClientFactory retourneert. Houd de registratienaam en de opgevraagde naam bij elkaar.

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

Haal vervolgens die benoemde configuratie op:

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

Het endpoint is illustratief. Voor toegestane openbare-dienstverzoeken biedt de HTTP-proxylijst kandidaten voor de WebProxy-URL van de benoemde client. Een standaardclient zonder naam elders aanmaken is een andere lookup, zelfs als beide clients van dezelfde geïnjecteerde factory komen.

Configureer proxygedrag op verbindingsniveau op de primaire handler in plaats van het als een bestemmings-requestheader te behandelen. De factory kan de levensduur van handlers afzonderlijk beheren van de HttpClient-objecten die hij retourneert.

Als een getypeerde client of een andere SDK de aanroep bezit, controleer dan welke registratie zijn HttpClient levert. Een correct geconfigureerde benoemde client die nooit wordt gebruikt, beïnvloedt het netwerkpad van die SDK niet.

Gebruik deze configuratie voor een stabiel routeringsbeleid. Een live handler tussen bewerkingen wijzigen blijft een afzonderlijk probleem van gelijktijdigheid en levensduur.

Gerelateerde artikelen