我们当前使用 HttpClientFactory 方式创建 Refit 所需要的 HttpClient
services.AddRefitClient<IBlogPostClient>()
.ConfigureHttpClient((sp, client) =>
{
client.BaseAddress = new Uri(sp.GetRequiredService<IOptions<BlogClientOptions>>().Value.BaseAddress);
});
这种方式需要指定一个有效的 BaseAddress,但 WebApplicationFactory 创建的 HttpClient 并没有有效的 BaseAddress,请问如何让 Refit 直接使用 WebApplicationFactory 创建的 HttpClient 实例?
汗,用惯了高级用法,却忽视了基本用法,RestService.For
的参数类型就是 HttpClient
var httpClient = factory.CreateClient();
var blogPostClient = RestService.For<IBlogPostClient>(httpClient);
注:factory 的类型是 WebApplicationFactory