HttpClient를 사용하여 압축된 HTTP 응답을 효율적으로 처리
많은 HTTP API는 압축된 데이터(예: GZip)를 반환하므로 사용하기 전에 압축을 풀어야 합니다. 이 문서에서는 WCF 서비스 및 .NET Core 애플리케이션 내에서 HttpClient
을 사용하여 GZip 응답의 압축을 자동으로 푸는 방법을 보여줍니다.
자동 GZip 압축 해제를 위해 HttpClient
을 다음과 같이 구성하세요.
<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using (var client = new HttpClient(handler)) { // Your HTTP requests here }</code>
이 간단한 추가를 통해 GZip 및 Deflate 압축 응답이 자동으로 처리됩니다.
모범 사례: 싱글톤 HttpClient
리소스 고갈(포트 고갈)을 방지하려면 싱글톤 HttpClient
인스턴스:
<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 이상: IHttpClientFactory
.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>
이 접근 방식은 .NET Core 종속성 주입 시스템과 원활하게 통합되어 유지 관리 가능성과 테스트 가능성이 향상됩니다.
이러한 방법을 구현하면 HttpClient
에서 GZip 압축 응답을 쉽고 효율적으로 처리하여 데이터 처리 워크플로를 단순화할 수 있습니다.
위 내용은 WCF 및 .NET Core에서 HttpClient를 사용하여 GZip 응답의 압축을 자동으로 푸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!