Безопасно ли использовать HttpClientFactory?
В моем приложении MVC asp.net ядро, я использую HttpClientFactory
создавать HttpClient
объект для запросов к серверу API.
Следует документу Microsoft, HttpClient
объект создается новым каждый раз, когда я звоню HttpClientFactory.CreateClient()
, так что будет безопасно для установки значений HttpClient.DefaultRequestHeaders
,
Около HttpMessageHandler
объекты, потому что они объединены и могут быть использованы позже. Таким образом, если они хранят информацию о куки (например: HttpClientHandler
объект), мы будем нарушать потокобезопасность.
Мое предположение верно? Как мы можем справиться с этой проблемой?
Это нормально, если мы установим cookie в HttpRequestMessage
тогда мы отправим HttpClient
?
1 ответ
Я нашел решение использовать HttpClientFactory. Мы должны отключить CookieContainer
первичного HttpMessageHanlder
(это HttpClientHandler
):
services.AddHttpClient("configured-inner-handler")
.ConfigurePrimaryHttpMessageHandler(() =>
{
return new HttpClientHandler()
{
UseCookies = false
};
});