При добавлении клиента в набор сервисов вы должны иметь возможность настроить обработчик там
Используя подход именованного клиента, я буду использовать константу для хранения имени клиента.
public static class NamedHttpClients {
public const string ProxiedClient = "ProxiedClient";
}
Оттуда это просто вопрос настройки клиента
//...
var serviceCollection = new ServiceCollection();
serviceCollection
.AddHttpClient(NamedHttpClients.ProxiedClient)
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler() {
Proxy = httpProxy
});
var services = serviceCollection.BuildServiceProvider();
, чтобы при вызове клиента через разрешенный IHttpClientFactory
var httpClientFactory = services.GetService<IHttpClientFactory>();
var client = httpClientFactory.CreateClient(NamedHttpClients.ProxiedClient);
возвращенный клиент использовал обработчикс прокси.