SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請(qǐng)求頭header的解決方法
三種方式設(shè)置請(qǐng)求頭
在Spring Cloud中,使用Feign進(jìn)行服務(wù)之間的調(diào)用時(shí),默認(rèn)情況下是不會(huì)傳遞header的。如果需要傳遞header,可以通過以下幾種方式實(shí)現(xiàn):
@RequestHeader
1.在Feign的接口方法上使用@RequestHeader注解,指定要傳遞的header參數(shù)。例如:
@FeignClient(name = "other-service")
public interface OtherServiceClient {
@GetMapping("/api/some-resource")
ResponseEntity<String> getSomeResource(@RequestHeader("Authorization") String token);
}@Bean RequestInterceptor
2.在Feign的配置類中配置RequestInterceptor,用于設(shè)置header。例如:
@Configuration
public class FeignClientConfig {
public HttpServletRequest getRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
@Bean
public RequestInterceptor requestInterceptor() {
return template -> {
template.header("platform", getRequest().getHeader("platform"));
};
}
}實(shí)現(xiàn) RequestInterceptor
3.在Feign的配置文件中配置header。例如:
feign:
client:
config:
default:
loggerLevel: full
requestInterceptors:
- com.example.MyRequestInterceptorpublic class MyRequestInterceptor implements RequestInterceptor {
public HttpServletRequest getRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
}
@Override
public void apply(RequestTemplate template) {
template.header("platform", getRequest().getHeader("platform"));
}
}以上是三種常用的方式,根據(jù)具體的需求選擇適合的方式即可。
到此這篇關(guān)于SpringCloud服務(wù)之間Feign調(diào)用不會(huì)帶上請(qǐng)求頭header的文章就介紹到這了,更多相關(guān)SpringCloud Feign內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springcloud使用feign調(diào)用服務(wù)時(shí)參數(shù)內(nèi)容過大問題
- springcloud?feign服務(wù)之間調(diào)用,date類型轉(zhuǎn)換錯(cuò)誤的問題
- SpringCloud中的Feign遠(yuǎn)程調(diào)用接口傳參失敗問題
- springcloud本地調(diào)試feign調(diào)用出現(xiàn)的詭異404問題及解決
- SpringCloud 服務(wù)負(fù)載均衡和調(diào)用 Ribbon、OpenFeign的方法
- SpringCloud使用Feign實(shí)現(xiàn)服務(wù)調(diào)用
- SpringCloud Feign 服務(wù)調(diào)用的實(shí)現(xiàn)
相關(guān)文章
SpringBoot2.x使用POI實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)到Excel
這篇文章主要為大家詳細(xì)介紹了SpringBoot2.x如何使用POI實(shí)現(xiàn)導(dǎo)入數(shù)據(jù)到Excel,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-07-07
java springmvc實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要為大家詳細(xì)介紹了java springmvc實(shí)現(xiàn)驗(yàn)證碼功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
SpringBoot詳解如何整合Redis緩存驗(yàn)證碼
本文主要介紹了SpringBoot集成Redis實(shí)現(xiàn)驗(yàn)證碼的緩存簡(jiǎn)單案例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
JDK17前后寫法超詳細(xì)對(duì)比(差點(diǎn)沒認(rèn)出是Java)
在實(shí)際應(yīng)用中,開發(fā)人員可以根據(jù)項(xiàng)目需求選擇合適的JDK版本,例如,對(duì)于需要高運(yùn)行效率和低延遲的應(yīng)用,可以選擇最新版本的JDK,以便獲得更好的性能和特性支持,這篇文章主要介紹了JDK17前后寫法超詳細(xì)對(duì)比的相關(guān)資料,需要的朋友可以參考下2026-04-04
Java使用Spire.Doc for Java合并多個(gè)Word文檔
在Java開發(fā)中,我們經(jīng)常需要將多個(gè)Word文檔合并為一個(gè)單一文件,本文將借助Spire.Doc for Java快速實(shí)現(xiàn)文檔合并,下面小編就為大家簡(jiǎn)單介紹一下吧2025-09-09
詳解Java并發(fā)工具類之CountDownLatch和CyclicBarrier
在JDK的并發(fā)包中,有幾個(gè)非常有用的并發(fā)工具類,它們分別是:CountDownLatch、CyclicBarrier、Semaphore和Exchanger,本文主要來講講其中CountDownLatch和CyclicBarrier的使用,感興趣的可以了解一下2023-06-06
SpringBoot-Admin實(shí)現(xiàn)微服務(wù)監(jiān)控+健康檢查+釘釘告警
本文主要介紹了SpringBoot-Admin實(shí)現(xiàn)微服務(wù)監(jiān)控+健康檢查+釘釘告警,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

