C # Flurl - Добавить WebRequestHandler для FlurlClient
Я работаю сFlurl ударить API, который требует проверки подлинности на основе сертификатов. Я видел изэтот ТАК пост что добавление сертификата вWebRequestHandler
и инструктируяHttpClient
использовать этот обработчик легко.
Тем не менее, мне не так понятно использование Flurl. Я попробовал следующие три вещи.
Расширение DefaultHttpFactory
Сначала я подозревал, что мне нужно создать свой собственныйX509HttpFactory : DefaultHttpFactory
который создаст обработчик и назначит егоHttpClient
, Однако при просмотре исходного кода я заметил, что конструктор дляCreateClient
уже ожидает обработчик. Откуда этот обработчик?
Создание клиента с помощью DefaultHttpFactory
WebRequestHandler handler = new WebRequestHandler();
handler.ClientCertificates.Add(myX509Cert);
var clientFactory = new DefaultHttpClientFactory();
FlurlClient fc = clientFactory.CreateClient(url, handler);
Это не компилируется какHttpClient
не может быть приведен кFlurlClient
Используйте ConfigureHttpClient
var clientFactory = new DefaultHttpClientFactory();
FlurlClient fc = new Url("foobar.com").ConfigureHttpClient(client => client = clientFactory
.CreateClient(url, handler));
Это кажется наиболее приемлемым вариантом, но я не уверен, так как делегатAction
без типа возврата.
Вопрос
Каков наилучший / правильный способ поддержки проверки подлинности сертификата на стороне клиента с использованием Flurl?