Я работаю над проектом веб-API .NET 4.6.1. В рамках этого проекта мне нужно вызвать другой веб-API, и я хочу использовать для этого HttpClient.
Судя по моим онлайн-исследованиям, вы не можете полагаться на то, что просто сделаете обычный HttpClient в предложении using, так как он неправильно собирает мусор и может привести к утечке памяти.
Например, я сейчас использую его следующим образом:
using (HttpClient client = new HttpClient { Timeout = TimeSpan.FromSeconds(CONTENTFUL_TIMEOUT_IN_SECONDS) } )
{
responseText = await client.GetStringAsync(uri).ConfigureAwait(continueOnCapturedContext:false);
}
Но, как предлагается в других статьях из Stack Overflow и других, это приводит к утечкам памяти, и способ обойти это — совместно использовать один экземпляр HttpClient. Например, проверьте HTTPCLIENT ДЕСТАБИЛИЗИРУЕТ ВАШЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ и HttpClientHandler/HttpClient Утечка памяти.
Однако я не уверен, как настроить общий экземпляр HttpClient из самого WebAPI?