Heim > Backend-Entwicklung > C++ > Wie dekomprimiere ich GZip-Antworten mithilfe von HttpClient in WCF und .NET Core automatisch?

Wie dekomprimiere ich GZip-Antworten mithilfe von HttpClient in WCF und .NET Core automatisch?

Susan Sarandon
Freigeben: 2025-01-17 17:36:09
Original
519 Leute haben es durchsucht

How to Automatically Decompress GZip Responses Using HttpClient in WCF and .NET Core?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

.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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage