首页 问答 .NET: 如何通过 Refit 获取 HttpClient 实例
问题详情

在一个 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 实例?

回答

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

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

    HttpClient Client { get; }
}

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/2334.html

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

70068002

客服电话

400-888-8888

客服邮箱

70068002@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站