Skip to Content
Neue Version 12 verfügbar 🎉

HTTP-Client

Den HTTP-Transport in Clientanwendungen von Babel Licensing konfigurieren

Babel Licensing unterstützt HTTP als alternatives Transportprotokoll zu gRPC. Der HTTP-Transport ist für Plattformen oder Umgebungen nützlich, in denen gRPC (HTTP/2) nicht verfügbar oder nicht praktikabel ist, etwa für ältere .NET-Framework-Anwendungen oder eingeschränkte Netzwerkumgebungen.

Um den HTTP-Transport zu wählen, rufen Sie die Methode UseHttp() des Konfigurationsobjekts auf. Wird UseHttp() aufgerufen, kommuniziert der Client über die REST-API statt über gRPC mit dem Babel Licensing Service.

Grundkonfiguration

So konfigurieren Sie den Client für den HTTP-Transport:

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

Ein Aufruf von UseHttp() ohne Parameter verwendet die Standardeinstellungen des HTTP-Clients.

Benutzerdefinierter HttpClientHandler

Sie können UseHttp() einen Konfigurations-Callback übergeben, um die Optionen des HTTP-Clients anzupassen. Der Callback erhält ein HttpClientOptions-Objekt mit den folgenden Eigenschaften:

  • Handler: Ruft den HttpClientHandler für HTTP-Anfragen ab oder legt ihn fest.
  • Timeout: Ruft die TimeSpan für das Timeout des HTTP-Clients ab oder legt sie fest.

SSL/TLS mit selbstsignierten Zertifikaten

Wenn Sie sich mit einem Dienst verbinden, der ein selbstsigniertes Zertifikat verwendet, konfigurieren Sie den HttpClientHandler so, dass er das Zertifikat akzeptiert:

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

Clientzertifikate

So legen Sie beim SSL/TLS-Handshake ein Clientzertifikat vor:

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 }; }); });

Benutzerdefiniertes Timeout

Sie können für HTTP-Anfragen ein eigenes Timeout angeben:

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 }; }); });

Proxy-Konfiguration

So leiten Sie HTTP-Anfragen über einen 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 und UseGrpc im Vergleich

Welches Transportprotokoll verwendet wird, hängt davon ab, welche Methode Sie in der Konfiguration aufrufen:

  • UseHttp(): Verwendet die REST-API über HTTP/1.1. Kompatibel mit allen .NET-Plattformen und Netzwerkkonfigurationen.
  • UseGrpc(): Verwendet gRPC über HTTP/2. Bietet durch binäre Serialisierung und Multiplexing eine bessere Leistung, setzt aber HTTP/2-Unterstützung voraus.

Wird keine der beiden Methoden aufgerufen, verwendet der Client standardmäßig gRPC, wo es unterstützt wird.

Last updated on