Прокси, конфигурирано за един именуван HttpClient, не конфигурира автоматично всеки клиент, върнат от IHttpClientFactory. Дръжте името на регистрацията и поисканото име заедно.

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

След това извлечете тази именувана конфигурация:

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

Крайната точка е илюстративна. За разрешени заявки към обществени услуги списъкът с HTTP проксита предоставя кандидати за WebProxy URL адреса на именувания клиент. Създаването на клиента по подразбиране без име другаде е друга справка, дори и двата клиента да идват от същата инжектирана фабрика.

Конфигурирайте прокси поведението на ниво връзка върху основния handler, вместо да го третирате като заглавка на заявка към дестинация. Фабриката може да управлява живота на handler-ите отделно от обектите HttpClient, които връща.

Ако извикването принадлежи на типизиран клиент или друг SDK, проверете коя регистрация доставя неговия HttpClient. Правилно конфигуриран именуван клиент, който никога не се използва, не влияе на мрежовия път на този SDK.

Използвайте тази конфигурация за стабилна политика за маршрутизиране. Смяната на активен handler между операции остава отделен проблем с паралелността и живота.

Подобни статии