В Startup.cs я ввожу службу IHttpClientFactory
:
services.AddHttpClient();
Затем я могу создать новый HttpClient
через
public MyClass(IHttpClientFactory httpClientFactory, IOptions<MyClassOptions> options)
{
_httpClient = httpClientFactory.CreateClient();
// ...
}
MyClass
имеет доступ к API ; базовый URL-адрес передается в объекте options
.
Для тестирования я установил фиктивный экземпляр API, который использует самозаверяющий сертификат SSL. К сожалению, этот сертификат (правильно) признан недействительным:
System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
Как отключить проверку сертификата на заводском уровне, т.е. непосредственно в методе ConfigureServices
?
Я нашел этот вопрос , но, похоже, использовалась некоторая пользовательская реализация HttpClient
(?), А я хочу выбрать вариант по умолчанию. Следующее не работает (DI выбирает неправильный конструктор и впоследствии терпит неудачу):
services.AddHttpClient<IMyClass, MyClass>();
Этот ответ предлагает указать имя для настроенного HttpClient
, но он передает некоторые маги Строка c, которой я бы хотел избежать (MyClass
находится в библиотеке классов, предназначенной для использования другими). Отсутствие имени также не работает, поскольку AddHttpClient
тогда просто возвращает объект IServiceCollection
.