J'ai travaillé sur un projet WebApi .NET 4.6.1. Dans le cadre de ce projet, j'ai besoin d'appeler un autre WebApi et je veux utiliser le HttpClient pour le faire. De mes recherches en ligne, vous ne pouvez pas compter sur un HttpClient normal dans une clause using car il ne collecte pas les ordures correctement et peut conduire à des fuites de mémoire.Utilisation de HttpClient pour passer un appel dans un WebAPI
Par exemple. Je l'utilise actuellement comme suit:
using (HttpClient client = new HttpClient { Timeout = TimeSpan.FromSeconds(CONTENTFUL_TIMEOUT_IN_SECONDS) })
{
responseText = await client.GetStringAsync(uri).ConfigureAwait(continueOnCapturedContext:false);
}
Mais comme suggéré dans d'autres articles de StackOverflow et d'autres cela a conduit à des fuites de mémoire, et la façon de contourner cela est de partager une seule instance de la HttpClient.
Par exemple. https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/ HttpClientHandler/HttpClient Memory Leak
Je ne suis pas sûr mais comment configurer un « unique » partagée instance de la HttpClient à partir d'un WebAPI lui-même?