当前位置: 首页 > article >正文

使用OpenFeing远程调用时为方法添加请求头

要在Feign调用中为所有的方法添加多个header,可以使用 RequestInterceptor接口来实现,用于在Feign调用发起前,对请求进行处理。下面是如何实现的步骤:

1.创建一个RequestInterceptor

  • 首先,创建一个RequestInterceptor接口的实现类。在该类中,重写apply方法,在该方法中添加需要的header请求头信息。

  • 然后,在Feign的配置类中将该RequestInterceptor添加到Feign的请求拦截器中。

  • 下面这种写法是简写,同时做了上面两件事情!

import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FeignConfig {

    @Bean
    public RequestInterceptor requestInterceptor() {
        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate template) {
                template.header("Header-Name-1", "HeaderValue1");
                template.header("Header-Name-2", "HeaderValue2");
                template.header("Header-Name-3", "HeaderValue3");
            }
        };
    }
}

2.在FeignClient中引用FeignConfig

确保在你的 @FeignClient 注解中使用configuration属性,引入配置类。

@FeignClient(name = "demo-service", configuration = FeignConfig.class)
public interface DemoServiceFeign {
    @GetMapping("/pi/getAll")
    List<ProductInventory> getAllUsers();
    
    @PostMapping("/pi/add")
    int addUser(@RequestBody ProductInventory productInventory);
}

通过这种方式,所有的Feign调用将自动带上你在 RequestInterceptor 中定义的header。


http://www.kler.cn/news/342752.html

相关文章:

  • 掌握 C# 设计模式:从基础到依赖注入
  • Django学习笔记七:用户认证与授权
  • C语言-常见文件操作函数详解(fgetc,fputc,fgets,fputs,fscanf,fprintf,fread,fwrite)
  • C++与Rust那些事之跳过析构函数
  • 杨中科 ASP.NETCORE 异步编程二
  • 【golang】gorm 使用map实现in 条件查询用法
  • 大数据面试-笔试SQL
  • OpenCV视频I/O(19)视频写入类VideoWriter之释放 VideoWriter 对象占用的资源函数release()的使用
  • vue 深拷贝和浅拷贝的区别
  • kafka和zookeeper单机部署
  • 制作一个流水灯,控制发光二极管由上至下再由下至上反复循环点亮显示,每次点亮一个发光二级管(Proteus 与Keil uVision联合仿真)
  • 控制台java原生工具打包jar文件
  • 51c自动驾驶~合集3
  • 模块化沙箱的功能特点
  • 数据结构之——树形结构
  • 多线程实践(一)——# 基于多线程实现的并发服务器
  • 计算机毕业设计 基于Python的豆果美食推荐系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • Python知识点:基于Python工具,如何使用PyTorch进行图像分类
  • 仿IOS桌面悬浮球(支持拖拽、自动吸附、自动改变透明度与点击、兼容PC端与移动端)
  • Java项目: 基于SpringBoot+mybatis+maven+vue健身房管理系统(含源码+数据库+毕业论文)