Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahmampat Respons GZip Secara Automatik Menggunakan HttpClient dalam WCF dan Teras .NET?
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>
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>
.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>
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!