Maison >développement back-end >C++ >Comment décompresser automatiquement les réponses GZip à l'aide de HttpClient dans WCF et .NET Core ?
Gérer efficacement les réponses HTTP compressées avec HttpClient
De nombreuses API HTTP renvoient des données compressées (comme GZip), nécessitant une décompression avant utilisation. Cet article montre comment décompresser automatiquement les réponses GZip à l'aide de HttpClient
dans les services WCF et les applications .NET Core.
Pour la décompression automatique de GZip, configurez votre HttpClient
comme suit :
<code class="language-csharp">HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; using (var client = new HttpClient(handler)) { // Your HTTP requests here }</code>
Ce simple ajout garantit que les réponses compressées GZip et Deflate sont automatiquement traitées.
Meilleure pratique : Singleton HttpClient
Pour éviter l'épuisement des ressources (épuisement des ports), il est recommandé d'utiliser une instance HttpClient
singleton :
<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 et supérieur : IHttpClientFactory
Pour .NET Core 2.1 et versions ultérieures, exploitez IHttpClientFactory
pour l'injection de dépendances et une gestion améliorée :
<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>
Cette approche s'intègre parfaitement au système d'injection de dépendances .NET Core, améliorant ainsi la maintenabilité et la testabilité.
En mettant en œuvre ces méthodes, vous pouvez gérer facilement et efficacement les réponses compressées GZip de votre HttpClient
, simplifiant ainsi votre flux de travail de traitement des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!