我可能会误解
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 中定义它,它必须像上面那样完成(如果可能的话)。