Skip to Content
Nouvelle version 12 disponible 🎉

Client HTTP

Configurer le transport HTTP dans les applications clientes Babel Licensing

Babel Licensing prend en charge HTTP comme protocole de transport alternatif à gRPC. Le transport HTTP est utile sur les plateformes ou dans les environnements où gRPC (HTTP/2) n’est pas disponible ou peu pratique, par exemple les anciennes applications .NET Framework ou les environnements réseau restreints.

Pour sélectionner le transport HTTP, appelez la méthode UseHttp() sur l’objet de configuration. Si UseHttp() est appelée, le client communique avec le Babel Licensing Service par son API REST au lieu de gRPC.

Configuration de base

Pour configurer le client afin qu’il utilise le transport HTTP :

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

L’appel de UseHttp() sans paramètre utilise les paramètres par défaut du client HTTP.

HttpClientHandler personnalisé

Vous pouvez passer un rappel de configuration à UseHttp() pour personnaliser les options du client HTTP. Le rappel reçoit un objet HttpClientOptions doté des propriétés suivantes :

  • Handler : obtient ou dĂ©finit le HttpClientHandler utilisĂ© pour les requĂŞtes HTTP.
  • Timeout : obtient ou dĂ©finit le TimeSpan du dĂ©lai d’expiration du client HTTP.

SSL/TLS avec des certificats auto-signés

Pour vous connecter à un service qui utilise un certificat auto-signé, configurez le HttpClientHandler pour qu’il accepte le certificat :

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

Certificats client

Pour présenter un certificat client lors de la négociation 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 }; }); });

Délai d’expiration personnalisé

Vous pouvez indiquer un délai d’expiration personnalisé pour les requêtes 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 }; }); });

Configuration du proxy

Pour acheminer les requêtes HTTP par 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 ou UseGrpc

Le protocole de transport dépend de la méthode que vous appelez sur la configuration :

  • UseHttp() : utilise l’API REST sur HTTP/1.1. Compatible avec toutes les plateformes .NET et toutes les configurations rĂ©seau.
  • UseGrpc() : utilise gRPC sur HTTP/2. Offre de meilleures performances grâce Ă  la sĂ©rialisation binaire et au multiplexage, mais nĂ©cessite la prise en charge de HTTP/2.

Si aucune des deux méthodes n’est appelée, le client utilise gRPC par défaut là où il est pris en charge.

Last updated on