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!