En proxy som er konfigurert for én navngitt HttpClient, konfigurerer ikke automatisk alle klientene IHttpClientFactory returnerer. Hold registreringsnavnet og det forespurte navnet sammen.

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

Hent deretter den navngitte konfigurasjonen:

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

Endepunktet er illustrativt. For tillatte forespørsler til offentlige tjenester tilbyr HTTP-proxylisten kandidater for den navngitte klientens WebProxy-URL. Å opprette standardklienten uten navn et annet sted er et annet oppslag, selv om begge klientene kommer fra samme injiserte fabrikk.

Konfigurer proxyatferd på tilkoblingsnivå på den primære behandleren i stedet for å behandle det som en destinasjonsforespørselsheader. Fabrikken kan håndtere behandlernes levetid separat fra HttpClient-objektene den returnerer.

Hvis kallet eies av en typet klient eller en annen SDK, sjekk hvilken registrering som leverer HttpClient-en. En riktig konfigurert navngitt klient som aldri brukes, påvirker ikke SDK-ens nettverksbane.

Bruk denne konfigurasjonen for en stabil rutingpolicy. Å bytte en aktiv behandler mellom operasjoner er fortsatt et separat samtidighets- og levetidsproblem.

Relaterte artikler