Un proxy configurato per un HttpClient denominato non configura automaticamente ogni client restituito da IHttpClientFactory. Tieni insieme il nome della registrazione e il nome richiesto.

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

Poi recupera quella configurazione denominata:

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

L'endpoint è illustrativo. Per le richieste consentite ai servizi pubblici, il elenco dei proxy HTTP fornisce candidati per l'URL WebProxy del client denominato. Creare il client predefinito senza nome altrove è una ricerca diversa, anche se entrambi i client provengono dalla stessa factory iniettata.

Configura il comportamento del proxy a livello di connessione sul gestore primario invece di trattarlo come un'intestazione di richiesta di destinazione. La factory può gestire le durate dei gestori separatamente dagli oggetti HttpClient che restituisce.

Se la chiamata appartiene a un client tipizzato o a un altro SDK, controlla quale registrazione fornisce il suo HttpClient. Un client denominato configurato correttamente e mai utilizzato non influisce sul percorso di rete di quell'SDK.

Usa questa configurazione per una politica di routing stabile. Cambiare un gestore attivo tra operazioni resta un problema separato di concorrenza e durata.

Articoli correlati