Я бы предложил зарегистрировать HttpClient в файле запуска и добавить его в свой контроллер или службу.
Проверка среды (IHostingEnvironment), в зависимости от среды вы можете зарегистрировать либо HttpClient с обработчиком прокси, либо без обработчик прокси. Пока вы работаете локально, это должна быть разработка, где вы можете зарегистрировать HttpClient с прокси. В противном случае вы будете использовать экземпляр HttpClient без настройки прокси.
Ниже приведен пример кода для регистрации HttpClient:
public class Startup
{
private readonly IHostingEnvironment hostingEnvironment;
public Startup(IHostingEnvironment hostingEnvironment)
{
this.hostingEnvironment = hostingEnvironment;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
if(hostingEnvironment.IsDevelopment())
{
var httpClient = new HttpClient(new HttpClientHandler()
{
// Set your proxy details here
});
services.AddSingleton(httpClient);
}
else
{
services.AddSingleton<HttpClient, HttpClient>();
}
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
}
}
и пример кода для внедрения HttpClient в ваш контроллер (аналогично вы можете внедрить его в ваши услуги):
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
private readonly HttpClient httpClient;
public ValuesController(HttpClient httpClient)
{
this.httpClient = httpClient;
}
}