Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahmampat Respons GZip Secara Automatik Menggunakan HttpClient dalam WCF dan Teras .NET?

Bagaimana untuk Menyahmampat Respons GZip Secara Automatik Menggunakan HttpClient dalam WCF dan Teras .NET?

Susan Sarandon
Lepaskan: 2025-01-17 17:36:09
asal
519 orang telah melayarinya

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

Mengendalikan Respons HTTP Termampat dengan Cekap dengan HttpClient

Banyak API HTTP mengembalikan data termampat (seperti GZip), memerlukan penyahmampatan sebelum digunakan. Artikel ini menunjukkan cara untuk menyahmampatkan respons GZip secara automatik menggunakan HttpClient dalam perkhidmatan WCF dan aplikasi Teras .NET.

Untuk penyahmampatan GZip automatik, konfigurasikan HttpClient anda seperti berikut:

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

using (var client = new HttpClient(handler))
{
  // Your HTTP requests here
}</code>
Salin selepas log masuk

Tambahan ringkas ini memastikan bahawa respons mampat GZip dan Deflate dikendalikan secara automatik.

Amalan Terbaik: Singleton HttpClient

Untuk mengelakkan keletihan sumber (port exhaustion), adalah amalan terbaik untuk menggunakan satu contoh HttpClient tunggal:

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

.NET Core 2.1 dan Ke Atas: IHttpClientFactory

Untuk .NET Core 2.1 dan versi yang lebih baru, manfaatkan IHttpClientFactory untuk suntikan pergantungan dan pengurusan yang lebih baik:

<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

Pendekatan ini disepadukan dengan lancar dengan sistem suntikan kebergantungan Teras NET, meningkatkan kebolehselenggaraan dan kebolehujian.

Dengan melaksanakan kaedah ini, anda boleh dengan mudah dan cekap mengendalikan respons yang dimampatkan GZip daripada HttpClient anda, memudahkan aliran kerja pemprosesan data anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyahmampat Respons GZip Secara Automatik Menggunakan HttpClient dalam WCF dan Teras .NET?. 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