tnblog
首页
视频
资源
登录

.NET6, .Net Core 中使用 HttpClient。HttpClient注入基础配置的用法

2289人阅读 2024/1/11 10:57 总访问:824574 评论:0 收藏:0 手机
分类: .net

先注入

  1. string token="eyJhbGciOiJSUzI1NiIsImt你的token";
  2. builder.Services.AddHttpClient("education", httpClient =>
  3. {
  4. // 注意注意,与消息 URI 组合时,将排除基 URI 中最右侧“/”后的所有字符。 请参阅 RFC 3986 统一资源标识符 (URI) 泛型语法规范。
  5. //httpClient.BaseAddress = new Uri("http://127.0.0.1:8804/education/api");
  6. httpClient.BaseAddress = new Uri("http://127.0.0.1:8804/");
  7. httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  8. httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
  9. });
  10. // education线上
  11. builder.Services.AddHttpClient("educationOnline", httpClient =>
  12. {
  13. httpClient.BaseAddress = new Uri("https://smartedu-apis.xx.com/");
  14. httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  15. httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
  16. });
  17. builder.Services.AddHttpClient("labRoom", httpClient =>
  18. {
  19. httpClient.BaseAddress = new Uri("http://127.0.0.1:8805/");
  20. httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  21. httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
  22. });

使用

访问注入的education

  1. [Route("api/[controller]")]
  2. [ApiController]
  3. public class MessageController : ControllerBase
  4. {
  5. IHttpClientFactory _httpClientFactory;
  6. public MessageController(IHttpClientFactory httpClientFactory)
  7. {
  8. _httpClientFactory = httpClientFactory;
  9. }
  10. [HttpGet]
  11. public async void Get()
  12. {
  13. // 获取对应的httpclient
  14. var client = _httpClientFactory.CreateClient("education");
  15. // 构建post请求参数
  16. TaskMessageDTO taskMessageDTO = new TaskMessageDTO();
  17. taskMessageDTO.MessageContent = "干饭了干饭了!!!";
  18. taskMessageDTO.SendUser = "实验";
  19. taskMessageDTO.DescUser = "51399fc9cafc449092a0d0f90e6024af";
  20. taskMessageDTO.SysReminderLevel = 3;
  21. taskMessageDTO.MessageType = 3;
  22. taskMessageDTO.RouterPath = "/application-center";
  23. StringContent strcontent = new StringContent(JsonConvert.SerializeObject(taskMessageDTO), Encoding.UTF8, "application/json");
  24. // 发送请求拿到结果
  25. var response = await client.PostAsync("education/api/MessageApi/SendMessage", strcontent);
  26. HttpContent httpContent = response.Content;
  27. var result = await httpContent.ReadAsStringAsync();
  28. }
  29. }

访问注入的labRoom

  1. [HttpGet]
  2. public async void Get()
  3. {
  4. // 获取对应的httpclient
  5. var client = _httpClientFactory.CreateClient("labRoom");
  6. var response = await client.GetAsync("labRoom/api/MessageTask/GetTeacherTodayTeachingBad");
  7. HttpContent httpContent = response.Content;
  8. var result = await httpContent.ReadAsStringAsync();
  9. }

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

SQL Server 中使用游标

--声明一个游标 DECLAREMyCursorCURSOR FORSELECTTOP5FBookName,FBookCodingFROMTBookInfo//定义一个叫MyCursor的游标,...

net core中使用cookie

net core中可以使用传统的cookie也可以使用加密的cookieNET CORE中使用传统cookie设置:HttpContext.Response.Cookies.Appe...

net core中使用url编码与解码操作

net core中暂时还没有以前asp.net与mvc中的server对象。获取url的编码与解码操作不能使用以前的server对象来获取。使用的是...

net core过滤器。net core过滤器中获取依赖注入对象。net core过滤器中使用依赖注入。ServiceFilter 

虽然对象都可以直接实例化得到。但是所有的对象依赖关系,都用DI容器去管理,这样后面想要更换对象的时候也非常方便,项目...

net core控制器(控制台)中使用依赖注入

net core中使用的依赖注入默认是:DependencyInjection使用nuget下载:install-package Microsoft.Extensions.DependencyIn...

net core 页面中使用户依赖注入+自定义中间件

记录一下 NET CORE 的自定义中间件,我们用的MVC在CORE中就是一个中间件,想用的时候添加就好了,今天简单记录一下CORE添加...

.net core3.0中使用了response无法输出内容问题

应该是和返回的IActionResult冲突了,把action返回值修改成void即可

.net core 中使用AutoMapper进行对象映射

AutoMapper基于约定的对象-对象映射器。AutoMapper使用流畅的配置API定义对象-对象映射策略。AutoMapper使用基于约定的匹配...

MVC web应用如何在IIS Express中使用虚拟目录

在asp.net web项目开发中,有时候会涉及到虚拟目录的问题,使用虚拟目录功能映射一个非项目内的文件夹实现文件共享,这个功...

layui中使用layer

直接这样既可:layui.use('layer',function(){ varlayer=layui.layer; layer.msg('hello'); });

解决.net core 3.1中使用GB2312编码报错

在.net core3.1使用GB2312时抛出以下异常System.ArgumentException:“gb2312 is not a supported encoding name. For infor...

在js中使用Razor (@)

MVC @后的后台代码可以直接使用html 但是不能直接使用js使用<text>这个伪元素来强制Razor从编译模式返回到内容模式:

sqlsugar官方文档与基本用法sqlsugar直接执行sqlsqlsugar分组函数。Sqlsugar官网。sqlsugar在直接执行sql中使用In。sqlsugar 返回第一行第一列

sqlsugar官方文档https://www.donet5.com/Home/Docsqlsugar基本用法下载依赖:<ItemGroup> <PackageReferenceInc...

EF core中使用IDesignTimeDbContextFactory的测试方法,调试方法

DesignTimeDbContextFactory的作用 一些EF Core Tools命令(例如Migrations命令)需要在设计时创建一个派生的DbContext实例...

word在线预览,pdf在线预览,excel在线预览,word转图片,pdf图片。预览组件kkFileView。vue中使用Base64

在线文件预览组件推荐kkFileViewdocker下的安装拉取镜像 docker pull keking/kkfileview 运行镜像 docker run -it -p 80...

net 项目中使用automapper

目录 net 项目中使用automapper 自动注入方式 项目中引入包 注入服务 写automapper 配置文件 具体使用automapper...
这一生多幸运赶上过你.
排名
8
文章
221
粉丝
7
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术