Asp.Net Core中Typed HttpClient高级用法

news/2024/9/22 10:28:39/文章来源:https://www.cnblogs.com/zy8899/p/18384236

另一个常见的需求是根据不同的服务接口创建不同的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等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788435.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10的自动更新在哪,怎么打开电脑更新设置

在Windows 10系统中,自动更新的设置位置相对直观,用户可以按照以下步骤找到并配置自动更新设置: 一、通过设置界面找到自动更新 1.打开设置:点击屏幕左下角的“开始”按钮,然后选择“设置”(齿轮形状的图标)或者直接按下Win + I快捷键打开设置应用。 2.进入更新和安全:…

RapidCMS 几个常见漏洞

侵权声明 本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。 如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系: [360619623@qq.c…

Cloud Studio:颠覆传统的云端开发与学习解决方案

Cloud Studio 的推出无疑为开发者和学习者们提供了一种全新的工作和学习体验。作为一款基于浏览器的集成开发环境,它不仅让开发者能够随时随地访问自己的开发工具,还极大地简化了开发过程。无论是初学者还是经验丰富的开发者,Cloud Studio 都通过其全面的功能和丰富的资源,…

Linux上网配置-CentOS7

上网配置思路1.确认虚拟机的网络适配器为桥接模式 2.网卡配置文件是否存在并启用网卡接口 3.网卡配置文件详解:静态IP地址、子网掩码、默认网关、物理地址以及 DNS 4.局域网的其他物理机能远程该虚拟机 5.虚拟机ping通外网一、确认虚拟机的网络适配器为桥接模式问题1.为什么要…

【开源】用香橙派Zero 2W做电视机顶盒

先前用闲置的香橙派3 LTS做了一个电视机顶盒,不需要画电路,加上3D打印的外壳就好了。最近又有闲置的香橙派Zero 2W,功耗低又很小巧,忍不住又想拿来做机顶盒。香橙派Zero 2W算是个核心板,需要配一个扩展板才能得到RJ-45百兆网口、A型USB 2.0接口、红外接收头等接口。官方有…

接口获取文件流VUE转换为blob展示图片

接口获取文件流VUE转换为blob展示图片 vue通过接口获取图片文件流<template><el-image :src="imgurl" alt="资源访问失败" width="80%" height="80%" style="display: block" /> </template> <script …

pygame封装两个常用控件

#coding=utf-8import os,sys,re,time import pygame import random from win32api import GetSystemMetrics from tkinter import messageboxpygame.init() pygame.display.set_caption("我的控件")percent = 0.6 screen_width = GetSystemMetrics(0) screen_height …

pygame封装连个常用控件

#coding=utf-8import os,sys,re,time import pygame import random from win32api import GetSystemMetrics from tkinter import messageboxpygame.init() pygame.display.set_caption("我的控件")percent = 0.6 screen_width = GetSystemMetrics(0) screen_height …

相机产品展示步入3D可视化新纪元

在这个日新月异的数字时代,科技的每一次飞跃都在重新定义着我们的生活方式与创作边界。当摄影艺术邂逅前沿科技,一场关于视觉盛宴的变革正悄然上演,为摄影爱好者与专业人士开启了一扇通往无限创意与沉浸式体验的大门。传统相机展示往往受限于二维平面的局限,难以全方位、多…

探索最佳无代码低代码工具:加速 Web 应用开发

本文从新手友好视角,介绍一些顶级工具,并展示其应用示例,帮助新手开发者更快上手 Web 应用开发。Web 应用无处不在。 从用户友好的在线表单到功能强大的企业级解决方案,Web 应用的多样性和复杂性不断增长。 随着低代码无代码技术的发展,构建一个 Web 应用的门槛正在大大降…

为什么我们需要收集URL?

原创 M09ic ChainReactorNext Generation HTTP Dir/File Fuzz Tool: https://github.com/chainreactors/spray Fast passive URL enumeration Tool: https://github.com/chainreactors/urlfounder 为什么我们需要收集URL? 这个问题似乎在最基础的安全岗面试中都不太可能出现,但…

【C#】【Winform】自定义控件、自定义事件

https://blog.csdn.net/m0_62366581/article/details/139553373 在开发桌面的过程中,有时候自带的控件样式或者功能上可能不一定能够满足我们的所有要求。这时候,我们需要自定义控件。创建类库项目 把图标拖放到资源文件中 添加用户控件 设置样式尺寸 修改代码视图 其他项目中…