Maison >développement back-end >C++ >Dois-je réutiliser une seule instance httpclient ou en créer une nouvelle pour chaque appel API Web?

Dois-je réutiliser une seule instance httpclient ou en créer une nouvelle pour chaque appel API Web?

Susan Sarandon
Susan Sarandonoriginal
2025-01-28 14:26:09693parcourir

Should I Reuse a Single HttpClient Instance or Create a New One for Each Web API Call?

.NET Web API Client: le meilleur cycle de vie de l'instance httpclient

.NET Le client API Web interagit souvent avec plusieurs points d'API. Un problème commun est le meilleur cycle de vie de l'instance httpclient: devrait partager une instance pour plusieurs appels ou créer une nouvelle instance pour chaque appel?

Les avantages du partage de l'instance httpclient

Créez une seule instance httpClient et réutilisez-le en plusieurs appels pour avoir les avantages suivants:

Contaliens et cookies:

HttpClientHandler Indementiels et cookies, ces informations d'identification et cookies sont conçues pour les réutiliser. Le HTTPCLIENT insuffisant re -stancié doit réinitialiser ces valeurs.
  • En-tête par défaut personnalisé: Le stockage de la propriété DefaultRequestHeaders est stocké dans un en-tête personnalisé utilisé dans plusieurs demandes. Les réinitialiser dans chaque demande détruira leur objectif.
  • HttpMessageHandler:
  • Prise en charge httpclient pour ajouter httpMessageHandler au tuyau de demande / réponse, pour les points d'attention croisés (par exemple, enregistrements du journal, écaillage). HttpClient réutilisable peut s'assurer que ces programmes de traitement sont toujours appliqués.
  • La surcharge de l'instance httpclient seule
  • Bien qu'il existe de nombreux avantages pour partager l'instance httpclient, il générera également des frais généraux lorsqu'il s'agit de l'instance:

Connexion TCP / IP éteindre: httpclient traitera également son httpclientHandler, qui sera forcé de fermer la connexion TCP / IP maintenue par le servicePointManager. Créez un nouveau HTTPClient pour que chaque demande soit réintégrée.

Considérations de performance

  • Les performances de l'utilisation de l'instance httpClient en une seule période dépend de facteurs tels que les types de réseaux et les protocoles:
  • LAN (LAN) utilise http:
En raison du mécanisme de garantie TCP sous-jacent, la perte de performance peut être ignorée.

L'Internet utilise HTTP: En raison de la référence de la connexion, 40% des pertes de performance ont été observées.

Connexion HTTPS:

Lorsque vous utilisez HTTPS, l'impact devrait être plus élevé.
  • suggestion
  • Sur la base de ces considérations, la meilleure pratique est pour maintenir une instance httpClient pour la seule API pour chaque connexion, de sorte qu'elle est la même que le cycle de vie de l'application . Cela équilibre les avantages des références réutilisables, des chefs et des programmes de traitement, ainsi que les frais généraux de la création et du traitement de l'instance httpClient.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn