Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahmampat Strim GZip daripada Respons HTTPClient dalam WCF dan .NET Core?

Bagaimana untuk Menyahmampat Strim GZip daripada Respons HTTPClient dalam WCF dan .NET Core?

Barbara Streisand
Barbara Streisandasal
2025-01-17 17:42:09134semak imbas

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

Nyahmampat strim GZip daripada respons HTTPClient

Apabila cuba menyepadukan dengan API yang mengembalikan JSON berkod GZip, adalah penting untuk menyahkod respons termampat sebelum diproses selanjutnya. Coretan kod berikut menunjukkan cara untuk menyahmampat respons berkod GZip dalam perkhidmatan WCF:

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

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

Nota: Adalah disyorkan untuk mengelak daripada menggunakan using dalam blok HttpClient untuk mengelakkan keletihan port. Sila pertimbangkan untuk menggunakan corak berikut:

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

Sebagai alternatif, untuk aplikasi .Net Core 2.1, disyorkan untuk menggunakan IHttpClientFactory dan menyuntiknya dalam kod permulaan:

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

Atas ialah kandungan terperinci Bagaimana untuk Menyahmampat Strim GZip daripada Respons HTTPClient dalam WCF dan .NET Core?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn