首页 > 编程语言 >Asp.Net Core中Typed HttpClient高级用法

Asp.Net Core中Typed HttpClient高级用法

时间:2024-08-28 11:14:25浏览次数:13  
标签:Core Asp IExampleService Typed exampleService logger httpClient public HttpClien

另一个常见的需求是根据不同的服务接口创建不同的HttpClient实例。为了实现这一点,ASP.NET Core提供了Typed HttpClient的支持。
下面是使用Typed HttpClient的示例代码:

public interface IExampleService
{
    Task<string> GetData();
}

public class ExampleService : IExampleService
{
    private readonly HttpClient _httpClient;

    public ExampleService(HttpClient httpClient)
    {
        _httpClient = httpClient;
    }

    public async Task<string> GetData()
    {
        HttpResponseMessage response = await _httpClient.GetAsync("");
        response.EnsureSuccessStatusCode();

        return await response.Content.ReadAsStringAsync();
    }
}

配置依赖注入:

builder.Services.AddHttpClient<IExampleService, ExampleService>(client =>
{
    client.BaseAddress = new Uri("https://www.baidu.com/");
});

在控制器中注入IExampleService:

private readonly ILogger<WeatherForecastController> _logger;
private readonly IHttpClientFactory _httpClientFactory;
private readonly IExampleService _exampleService;

public WeatherForecastController(ILogger<WeatherForecastController> logger, 
                                         IHttpClientFactory httpClientFactory, 
                                         IExampleService exampleService)
{
    _logger = logger;
    _httpClientFactory = httpClientFactory;
    _exampleService = exampleService;
}

在上面的示例中,我们首先定义了一个IExampleService接口,该接口定义了与外部服务交互的方法。然后,我们实现了ExampleService类,并在构造函数中注入了HttpClient实例。
最后,我们使用AddHttpClient方法的另一个重载版本,并通过泛型参数指定了服务接口和实现类的关联关系。在配置HttpClient的回调中,我们可以进行相应的配置,如设置BaseAddress等

标签:Core,Asp,IExampleService,Typed,exampleService,logger,httpClient,public,HttpClien
From: https://www.cnblogs.com/zy8899/p/18384236

相关文章

  • 界面控件Telerik UI for ASP.NET Core 2024 Q2亮点 - AI与UI的融合
    TelerikUIforASP.NETCore是用于跨平台响应式Web和云开发的最完整的UI工具集,拥有超过60个由KendoUI支持的ASP.NET核心组件。它的响应式和自适应的HTML5网格,提供从过滤、排序数据到分页和分层数据分组等100多项高级功能。本文将介绍界面组件TelerikUIforASP.NETCore在今年......
  • .net core使用jwt自动续期
    .netcore使用jwt自动续期       小弟不C才,最近看了下网上的jwt方案,于是自己写了一个简单的jwt方案和大家分享下,希望大家给点意见!      假如有一个读书网站,可以不用登陆就访问,当需要自己写文章的时候就必须登录,并且登录之后如果一段时间内没有访问,则......
  • .net core下使用事件总线
    .netcore下使用事件总线        随着微服务的火热,DDD(领域驱动设计模式)思想风起云涌,冲击着整个软件生态系统。其中,事件总线那是必须知道的了,于是我便抱着一个学习DDD的心态搭建了一个博客网站,目前该网站正在建设阶段,后续会不断完善,这里我只是讲一下我里面所用到的......
  • 一起来学习.net core程序使用中介者模式:MediatR插件
    一起来学习.netcore程序使用中介者模式:MediatR插件     中介者模式是一种常见的设计模式,旨再降低程序的耦合性,因为传统的三层模式层层之间需要显示的调用,必须上层依赖下层,耦合性很高,为了解耦,将所有的指令单独放在一个位置处理,其他位置均通过这个位置来间接的调用,从......
  • 驾驭ASP.NET MVC:C# Web开发的精粹
    标题:驾驭ASP.NETMVC:C#Web开发的精粹摘要ASP.NETMVC是微软提供的一个用于构建动态网站的服务器端框架,它遵循模型-视图-控制器(MVC)设计模式,以实现代码的高内聚低耦合。本文将深入探讨如何在C#中使用ASP.NETMVC框架进行Web应用程序开发,包括项目结构、路由、控制器、视图和......
  • CoreShop---.NET、Uni-App开发支持多平台的小程序商城系统
    前言小程序商城系统是当前备受追捧的开发领域,它可以为用户提供一个更加便捷、流畅、直观的购物体验,无需下载和安装,随时随地轻松使用。今天给大家推荐一个基于.NET、Uni-App开发支持多平台的小程序商城系统(该商城系统完整开源、无封装无加密、商用免费、支持二次开发、支持跨平台......
  • Spring源码第十七讲 @Aspect 到 Advisor
    先做一些准备工作publicclassA017{publicstaticvoidmain(String[]args){GenericApplicationContextcontext=newGenericApplicationContext();context.registerBean("aspect1",Aspect1.class);context.registerBean("con......
  • ASP.NET8 中使用 AutoMapper 配置
    ASP.NET8中使用AutoMapper配置菜鸟新人学习.NET记录,找到了个类似Springboot框架中的Mapstruct的工具,就是配置资料不是很多,踩了蛮多坑的。假设现在有一个USER类,我想将它转换成USERVO把其中的pwd字段給隐藏掉,通过AutoMapper可以不用每个字段赋值创建对象这样子,直接上......
  • ASP.Net8 中使用 JWT 鉴权的异常处理
    .Net8中使用JWT鉴权的异常处理自己搭了个学习Demo想用JWT給后端做鉴权,结果一直报一些奇奇怪怪的异常,最主要是和写业务代码不一样,因为用了官方提供的包很难排查出问题所在,这次有点像以前学Spring的时候,也是一点一点摸着石头过河,最后还是同事帮忙看出来问题在哪的。问题1:I......
  • .NET Core 处理 WebAPI JSON 返回烦人的null为空
    前言   项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值,则代码实体类中对应的字段类型为可空类型Nullable<>,如int?,DateTime?,null值字段序列化返回的值都为null,前台对应字段赋值需要做null值判断,怎么才能全局把null替换为空。    本文分享Web......