>백엔드 개발 >C++ >WCF 및 .NET Core의 HTTPClient 응답에서 GZip 스트림의 압축을 푸는 방법은 무엇입니까?

WCF 및 .NET Core의 HTTPClient 응답에서 GZip 스트림의 압축을 푸는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-17 17:42:09134검색

How to Decompress GZip Streams from an HTTPClient Response in WCF and .NET Core?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.