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
Lepaskan: 2025-01-17 17:42:09
asal
133 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan