Heim > Backend-Entwicklung > C++ > Wie dekomprimiere ich GZip-Streams aus einer HTTPClient-Antwort in WCF und .NET Core?

Wie dekomprimiere ich GZip-Streams aus einer HTTPClient-Antwort in WCF und .NET Core?

Barbara Streisand
Freigeben: 2025-01-17 17:42:09
Original
133 Leute haben es durchsucht

How to Decompress GZip Streams from an HTTPClient Response in WCF and .NET Core?

GZip-Stream aus HTTPClient-Antwort dekomprimieren

Bei der Integration mit APIs, die GZip-codiertes JSON zurückgeben, ist es wichtig, die komprimierte Antwort vor der weiteren Verarbeitung zu dekodieren. Der folgende Codeausschnitt zeigt, wie eine GZip-codierte Antwort in einem WCF-Dienst dekomprimiert wird:

<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler()
{
    AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
};

using (var client = new HttpClient(handler))
{
    // 获取响应并进一步处理
}</code>
Nach dem Login kopieren

Hinweis: Es wird empfohlen, die Verwendung von using innerhalb eines HttpClient-Blocks zu vermeiden, um eine Erschöpfung des Ports zu verhindern. Bitte verwenden Sie das folgende Muster:

<code class="language-csharp">private static HttpClient client = null;

ContructorMethod()
{
   if(client == null)
   {
        HttpClientHandler handler = new HttpClientHandler()
        {
            AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
        };        
        client = new HttpClient(handler);
   }
// 你的代码            
 }</code>
Nach dem Login kopieren

Alternativ wird für .Net Core 2.1-Anwendungen empfohlen, IHttpClientFactory zu verwenden und es in den Startcode einzufügen:

<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

Das obige ist der detaillierte Inhalt vonWie dekomprimiere ich GZip-Streams aus einer HTTPClient-Antwort in WCF und .NET Core?. 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