HTTPClient 응답에서 GZip 스트림 압축 해제
GZip으로 인코딩된 JSON을 반환하는 API와 통합하려는 경우 추가 처리 전에 압축된 응답을 디코딩하는 것이 중요합니다. 다음 코드 조각은 WCF 서비스에서 GZip으로 인코딩된 응답의 압축을 푸는 방법을 보여줍니다.
<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using (var client = new HttpClient(handler)) { // 获取响应并进一步处理 }</code>
참고: 포트 고갈을 방지하려면 using
블록 내에서 HttpClient
을 사용하지 않는 것이 좋습니다. 다음 패턴을 사용해 보세요.
<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>
또는 .Net Core 2.1 애플리케이션의 경우 IHttpClientFactory
를 사용하여 시작 코드에 삽입하는 것이 좋습니다.
<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>
위 내용은 WCF 및 .NET Core의 HTTPClient 응답에서 GZip 스트림의 압축을 푸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!