Skip to Content
新しいバージョン 12 を公開しました 🎉

HTTP クライアント

Babel Licensing クライアントアプリケーションでの HTTP トランスポートの設定

Babel Licensing は、gRPC に代わるトランスポートプロトコルとして HTTP をサポートしています。HTTP トランスポートは、古い .NET Framework アプリケーションや制限のあるネットワーク環境など、gRPC(HTTP/2)が利用できない、または実用的でないプラットフォームや環境で役立ちます。

HTTP トランスポートを選択するには、構成オブジェクトの UseHttp() メソッドを使用します。UseHttp() を呼び出すと、クライアントは gRPC ではなく REST API を通じて Babel Licensing Service と通信します。

基本的な構成

HTTP トランスポートを使用するようにクライアントを設定するには、次のようにします。

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

UseHttp() をパラメーターなしで呼び出すと、既定の HTTP クライアント設定が使用されます。

カスタム HttpClientHandler

UseHttp() に構成コールバックを渡すと、HTTP クライアントのオプションをカスタマイズできます。コールバックは、次のプロパティを持つ HttpClientOptions オブジェクトを受け取ります。

  • Handler:HTTP 要求に使用する HttpClientHandler を取得または設定します。
  • Timeout:HTTP クライアントのタイムアウトを表す TimeSpan を取得または設定します。

自己署名証明書を使用する SSL/TLS

自己署名証明書を使用するサービスに接続する場合は、その証明書を受け入れるように HttpClientHandler を設定します。

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

クライアント証明書

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

カスタムタイムアウト

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

プロキシの構成

HTTP 要求をプロキシ経由でルーティングするには、次のようにします。

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 と UseGrpc の比較

トランスポートプロトコルは、構成で呼び出すメソッドによって決まります。

  • UseHttp():HTTP/1.1 上の REST API を使用します。すべての .NET プラットフォームとネットワーク構成に対応しています。
  • UseGrpc():HTTP/2 上の gRPC を使用します。バイナリシリアル化と多重化によってパフォーマンスが向上しますが、HTTP/2 のサポートが必要です。

どちらのメソッドも呼び出さない場合、クライアントは、サポートされている環境では既定で gRPC を使用します。

Last updated on