首页 新闻 会员 周边

.NET: 如何通过 Refit 获取 HttpClient 实例

0
悬赏园豆:30 [已解决问题] 解决于 2026-02-10 20:38

在一个 ASP.NET Core 10 项目中,web api client 是基于 Refit 实现的

public interface IBlogPostClient
{
    [Get("/v2/blogs/{blogId}/posts/{postId}")]
    Task<ApiBlogPostDto> GetBlogPost(int blogId, int postId);
}
services.AddRefitClient<IBlogPostClient>()
.ConfigureHttpClient((sp, client) =>
{
    client.BaseAddress = new Uri(options.Value.BaseAddress);
    client.Timeout = TimeSpan.FromSeconds(10);
});

今天有个场景需要直接通过 HttpClient 调用 web api,请问如何通过 Refit 获取 HttpClient 实例?

dudu的主页 dudu | 高人七级 | 园豆:23674
提问于:2026-02-10 15:13
<
分享
最佳答案
0

只需给接口添加类型为 HttpClient 名为 Client 的属性即可,Refit 会自动注入 HttpClient 实例到这个属性

public interface IBlogPostClient
{
    [Get("/v2/blogs/{blogId}/posts/{postId}")]
    Task<ApiBlogPostDto> GetBlogPost(int blogId, int postId);

    HttpClient Client { get; }
}
dudu | 高人七级 |园豆:23674 | 2026-02-10 20:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册