Skip to Content
Nueva versión 12 disponible 🎉

Cliente HTTP

Configuración del transporte HTTP en las aplicaciones cliente de Babel Licensing

Babel Licensing admite HTTP como protocolo de transporte alternativo a gRPC. El transporte HTTP es útil en plataformas o entornos en los que gRPC (HTTP/2) no está disponible o no resulta práctico, como las aplicaciones antiguas de .NET Framework o los entornos de red restringidos.

Para seleccionar el transporte HTTP, use el método UseHttp() del objeto de configuración. Si se llama a UseHttp(), el cliente se comunica con el Babel Licensing Service a través de su API REST en lugar de gRPC.

Configuración básica

Para configurar el cliente de modo que use el transporte HTTP:

BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; config.UseHttp(); });

Al llamar a UseHttp() sin parámetros se usan los ajustes predeterminados del cliente HTTP.

HttpClientHandler personalizado

Puede pasar a UseHttp() una devolución de llamada de configuración para personalizar las opciones del cliente HTTP. La devolución de llamada recibe un objeto HttpClientOptions con las propiedades siguientes:

  • Handler: obtiene o establece el HttpClientHandler que se usa para las solicitudes HTTP.
  • Timeout: obtiene o establece el TimeSpan del tiempo de espera del cliente HTTP.

SSL/TLS con certificados autofirmados

Cuando se conecte a un servicio que usa un certificado autofirmado, configure el HttpClientHandler para que acepte el certificado:

BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; config.UseHttp(http => { http.Handler = new HttpClientHandler() { ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true }; }); });

Certificados de cliente

Para presentar un certificado de cliente durante el protocolo de enlace SSL/TLS:

BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; var certificate = new X509Certificate2("<cert file>.pfx", "<cert password>"); config.UseHttp(http => { http.Handler = new HttpClientHandler() { ClientCertificates = { certificate }, ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator }; }); });

Tiempo de espera personalizado

Puede especificar un tiempo de espera personalizado para las solicitudes HTTP:

BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; config.UseHttp(http => { http.Timeout = TimeSpan.FromSeconds(10); http.Handler = new HttpClientHandler() { ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true }; }); });

Configuración del proxy

Para dirigir las solicitudes HTTP a través de un proxy:

BabelLicensing.Configure(config => { config.ServiceUrl = "https://localhost:5005"; config.UseHttp(http => { http.Handler = new HttpClientHandler() { Proxy = new WebProxy("http://proxy-server:8080") { UseDefaultCredentials = true } }; }); });

UseHttp frente a UseGrpc

El protocolo de transporte lo determina el método al que se llama en la configuración:

  • UseHttp(): usa la API REST sobre HTTP/1.1. Es compatible con todas las plataformas .NET y con todas las configuraciones de red.
  • UseGrpc(): usa gRPC sobre HTTP/2. Ofrece mejor rendimiento gracias a la serialización binaria y a la multiplexación, pero requiere compatibilidad con HTTP/2.

Si no se llama a ninguno de los dos métodos, el cliente usa gRPC de forma predeterminada allí donde se admite.

Last updated on