spring gateway 集成 fegin 如何设置RequestInterceptor?
发布网友
发布时间:2022-04-23 07:43
我来回答
共1个回答
热心网友
时间:2022-06-17 20:59
不知道你说的是在哪里获取请求头,如果在webFilter中可以通过ServerWebExchange获取,在controller中可以直接用@RequestHeader
传递动态请求头的话可以使用feign的手动创建方式
下面的代码根据官方的改了改
@RestController
@Import(FeignClientsConfiguration.class)
public class TestController {
//这个是feign接口,里面有个test方法
private UserApi userApi;
//构造器所需的参数由FeignClientsConfiguration添加到容器
public TestController(Decoder decoder, Encoder encoder, Client client, Contract contract) {
userApi = Feign.builder()
//添加header,其实还是RequestInterceptor子类,不过这个会生效
.requestInterceptor(template -> template.header("a", "999"))
.contract(contract)
.decoder(decoder)
.encoder(encoder)
.client(client)
.target(UserApi.class, "http://tbbs-user");
}
@GetMapping("/test")
public void test() {
userApi.test();
}
}