使用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。