Bonjour,
En réalisant récemment des tests de performance sur la manière d'appeller un WebService, j'ai pu observé que le fait d'utiliser une même variable static HttpClient améliorait fortement mes appels au WebService.
Voici les liens qui m'ont amené à utiliser HttpClient et à utiliser une variable static "partagée"
http://www.diogonunes.com/blog/webcl...ttpwebrequest/
http://aspnetmonsters.com/2016/08/20...tpclientwrong/
J'ai toujours utilisé de manière indifférenciée les classes WebClient, HtpWebRequest ou HttpClient.
Le premier lien cité m'a donc amené à me concentrer sur l'utilisation de la classe HttpClient.
Ensuite, pour chaque appel à un WebService j'ai toujours créé une instance de ma classe, renseigné les différents paramètres, puis appelé mon service et traiter la réponse.
En tombant sur le deuxième lien j'ai donc mis en place une variable privée static HttpClient que j'utilise à chaque appel. Ainsi je ne créé plus une instance HttpClient à chaque appel.
En réalisant des tests de perfs sur un web service simple je suis passé de 1200 ms en moyenne à 80 ms.
J'ai un autre projet appelant également des webservices mais pour lequel j'ai un environnement beaucoup plus "concurrentiel" avec beaucoup de requête arrivant en parallèle et pouvant utiliser cette instance HttpClient.
Du coup je me demandais si il y avait des limites ou contre-indication au fait d'utiliser une variable privée static HttpClient "partagée" au lieu d'en créé une à chaque requête.
Cordialement,
Christophe.
Partager