如何解决在伪装客户端拦截器中获取请求 url
我正在使用 spring feign 客户端发出 http 请求。
Fiegn 配置类
DefaultConfig.class
public class DefaultConfig {
@Bean
public OkHttpClient client() {
return new OkHttpClient();
}
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
@Bean
public Decoder feignDecoder() {
return new JacksonDecoder();
}
@Bean
public Encoder feignEncoder() {
return new JacksonEncoder();
}
@Bean
public RequestInterceptor requestInterceptor() {
return template -> {
template.header(Authorization,apiKey);
};
}
}
我的客户端界面:
@FeignClient(name = "default",url = "${base-url}",configuration = DefaultConfig.class)
public interface {
@PostMapping(value = "/users/")
Response createUser(@RequestBody Map<String,?> requestBody);
@GetMapping(value = "/users/{id}")
Response getUserDetails(@PathVariable String id);
}
现在我需要为 GET 和 POST 请求使用不同的授权密钥。在配置类中,我需要通过调用的 url 来区分请求。我们如何获取请求者拦截器的 url 或我们可以实现的任何其他方式。我们可以为此创建单独的拦截器,但我尝试在两种情况下使用相同的拦截器。
解决方法
您需要的一切似乎都在模板对象中。
@Bean
public RequestInterceptor requestInterceptor() {
return template -> {
if ("GET".equals(template.method()) {
template.header(Authorization,apiKey);
} else {
template.header(Authorization,differentApiKey);
}
};
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。