Heim >Backend-Entwicklung >C++ >Wie dekomprimiere ich GZip-Antworten mithilfe von HttpClient in WCF und .NET Core automatisch?
Effiziente Verarbeitung komprimierter HTTP-Antworten mit HttpClient
Viele HTTP-APIs geben komprimierte Daten zurück (wie GZip), die vor der Verwendung dekomprimiert werden müssen. In diesem Artikel wird gezeigt, wie GZip-Antworten mithilfe von HttpClient
in WCF-Diensten und .NET Core-Anwendungen automatisch dekomprimiert werden.
Für die automatische GZip-Dekomprimierung konfigurieren Sie Ihr HttpClient
wie folgt:
<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using (var client = new HttpClient(handler)) { // Your HTTP requests here }</code>
Dieser einfache Zusatz stellt sicher, dass GZip- und Deflate-komprimierte Antworten automatisch verarbeitet werden.
Best Practice: Singleton HttpClient
Um eine Ressourcenerschöpfung (Port-Erschöpfung) zu vermeiden, empfiehlt es sich, eine Singleton-HttpClient
-Instanz zu verwenden:
<code class="language-csharp">private static HttpClient client = null; public void InitializeClient() { if (client == null) { HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; client = new HttpClient(handler); } // Your code using 'client' }</code>
.NET Core 2.1 und höher: IHttpClientFactory
Für .NET Core 2.1 und spätere Versionen nutzen Sie IHttpClientFactory
für die Abhängigkeitsinjektion und eine verbesserte Verwaltung:
<code class="language-csharp">var timeout = Policy.TimeoutAsync<HttpResponseMessage>(TimeSpan.FromSeconds(60)); services.AddHttpClient<XApiClient>().ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }).AddPolicyHandler(request => timeout);</code>
Dieser Ansatz lässt sich nahtlos in das .NET Core-Abhängigkeitsinjektionssystem integrieren und verbessert die Wartbarkeit und Testbarkeit.
Durch die Implementierung dieser Methoden können Sie GZip-komprimierte Antworten von Ihrem HttpClient
einfach und effizient verarbeiten und so Ihren Datenverarbeitungs-Workflow vereinfachen.
Das obige ist der detaillierte Inhalt vonWie dekomprimiere ich GZip-Antworten mithilfe von HttpClient in WCF und .NET Core automatisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!