IHttpClientFactory 缓存未按预期工作

问题描述 投票:0回答:0

我可能会误解

IHttpClientFactory
的工作原理,基本上我想在我的
asp.net core
项目中做的是在运行时在我的控制器中创建一个缓存客户端。

例子:

Program.cs
...
builder.Services.AddHttpClient();
...

然后在我的控制器中(例如 Microsoft 的默认 asp.net 核心项目)

public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;
        private readonly IHttpClientFactory _httpClientFactory;
        public IndexModel(ILogger<IndexModel> logger, IHttpClientFactory httpClientFactory)
        {
            _logger = logger;
            _httpClientFactory = httpClientFactory;
        }

        public void OnGet()
        {
            var test = _httpClientFactory.CreateClient("test");
            test.BaseAddress = new Uri("https://google.com/");

            var test2 = _httpClientFactory.CreateClient("test");
        }
    }

我的预期是在

test2
我的客户将默认基地址设置为
https://google.com
,不幸的是事实并非如此。所有自定义标头和/或 基地址未设置。

我的印象是

HttpClientFactory
会把这个存储在内存中。我是不是误解了
HttpClientFactory
的工作原理,还是我错过了其他东西?注意:我不能在 program.cs 中定义它,它必须像上面那样完成(如果可能的话)。

c# .net dependency-injection dotnet-httpclient
© www.soinside.com 2019 - 2024. All rights reserved.