使用FeignClient发送http/https请求,并动态设置请求头

在项目中,常见的发起http/https请求的方式一般是通过「okhttp3.OkHttpClient」,通过显式的拼接url、添加请求头、指定url就可以创建一个Request,然后通过OkHttpClient发起请求。如下

 但是这种方式有问题:

  • url需要仔细拼接,防止url出错
  • 如果有大量的地方有这种业务需求,会导致重复代码太多,并且由于url的拼接规则都不一样,无法将这些重复代码提取出来,造成了项目臃肿。
  • 结构化不清楚

所以可以使用FeignClient,通过定义接口的方式将请求结构化。

  •  先定义一个接口。
  • 添加FeignClinet注解,其中「url」表示请求的基地址,「name」的值就是Spring容器中声明的bean名字。
  • 编写方法。

 该接口的意思是发送「get」请求,并且该请求的请求头是由「@RequestHeader」指定的,「@RequestHeader」中的「authorization」是请求头的名字,之后在调用该方法的时候传入的值作为请求头的值。其他的也类似。

「@GetMapping」中的「consumes」指的是发起请求时的「content-type=application/json」,而「produces」是告诉服务器,我需要接受到的数据格式为application/json,即请求头中的「accept=application/json」。

Post请求:

其实FeignClient的使用方法和正常使用Spring MVC类似。当然,方法的返回值也可以是实体类,FeignClient可以自动封装对象。

常见的问题:

posted @   HMingR  阅读(7755)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示