HttpClient один экземпляр с разными заголовками аутентификации

Учитывая, что .net HttpClient был разработан с целью повторного использования и предназначен длядолго жил а такжеутечки памяти не поступало в недолгих случаях. Какие ориентиры существуют, когда вы хотите совершать спокойные вызовы для данной конечной точки, используя разные токены-носители (или любой заголовок авторизации) при вызове конечной точки для нескольких пользователей?

private void CallEndpoint(string resourceId, string bearerToken) {
  httpClient.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("bearer", bearerToken);
  var response = await httpClient.GetAsync($"resource/{resourceid}");
}

Поскольку приведенный выше код может быть вызван любым количеством потоков в веб-приложении, вполне возможно, что заголовок, заданный в первой строке, не совпадает с заголовком, который используется при вызове ресурса.

Не вызывая конфликтов с использованием блокировок и поддерживая веб-приложение без состояния, каков рекомендуемый подход к созданию и утилизации HttpClients для одной конечной точки (Моя текущая практика заключается в создании одного клиента на конечную точку)?

Жизненный цикл

Хотя HttpClient косвенно реализует интерфейс IDisposable, рекомендуемое использование HttpClient - не удалять его после каждого запроса. Объект HttpClient предназначен для жизни до тех пор, пока ваше приложение должно делать HTTP-запросы. Наличие объекта в нескольких запросах дает возможность для установки DefaultRequestHeaders и предотвращает необходимость повторного определения таких вещей, как CredentialCache и CookieContainer, при каждом запросе, как это было необходимо для HttpWebRequest.

Ответы на вопрос(1)

Ваш ответ на вопрос