C # Flurl - Agregue WebRequestHandler a FlurlClient
Estoy trabajando conFlurl golpear una API que requiere autenticación basada en certificados. He visto desdeesta publicación SO que agregar un certificado a unWebRequestHandler
e instruir a unHttpClient
Usar este controlador es fácil.
Sin embargo, no está tan claro para mí usar Flurl. He intentado las siguientes tres cosas.
Extender DefaultHttpFactory
Primero sospeché que necesitaba crear mi propioX509HttpFactory : DefaultHttpFactory
que crearía el controlador y lo asignaría aHttpClient
. Sin embargo, al ver la fuente, noto que el constructor deCreateClient
Ya espera un controlador. ¿De dónde viene este controlador?
Crear cliente usando DefaultHttpFactory
WebRequestHandler handler = new WebRequestHandler();
handler.ClientCertificates.Add(myX509Cert);
var clientFactory = new DefaultHttpClientFactory();
FlurlClient fc = clientFactory.CreateClient(url, handler);
Esto no se compila comoHttpClient
no puede ser lanzado aFlurlClient
Utilice ConfigureHttpClient
var clientFactory = new DefaultHttpClientFactory();
FlurlClient fc = new Url("foobar.com").ConfigureHttpClient(client => client = clientFactory
.CreateClient(url, handler));
Esta parece ser la opción más viable, pero no estoy seguro ya que el delegado es unAction
sin tipo de retorno.
La pregunta
¿Cuál es la mejor / correcta forma de admitir la autenticación de certificados del lado del cliente con Flurl?