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
Barbara StreisandOriginal
2025-01-17 17:42:09134Durchsuche

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>

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>

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>

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!

Stellungnahme:
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