首页 新闻 会员 周边 捐助

集成测试中如何让 Refit 使用 WebApplicationFactory 创建的 HttpClient

0
悬赏园豆:30 [已解决问题] 解决于 2023-02-03 21:06

我们当前使用 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 实例?

dudu的主页 dudu | 高人七级 | 园豆:30948
提问于:2023-02-03 19:40
< >
分享
最佳答案
0

汗,用惯了高级用法,却忽视了基本用法,RestService.For 的参数类型就是 HttpClient

var httpClient = factory.CreateClient();
var blogPostClient = RestService.For<IBlogPostClient>(httpClient);

注:factory 的类型是 WebApplicationFactory

dudu | 高人七级 |园豆:30948 | 2023-02-03 21:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册