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,可以通過(guò)以下幾種方式實(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的配置類(lèi)中配置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.MyRequestInterceptor
public 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)容過(guò)大問(wèn)題
- springcloud?feign服務(wù)之間調(diào)用,date類(lèi)型轉(zhuǎn)換錯(cuò)誤的問(wèn)題
- SpringCloud中的Feign遠(yuǎn)程調(diào)用接口傳參失敗問(wèn)題
- springcloud本地調(diào)試feign調(diào)用出現(xiàn)的詭異404問(wèn)題及解決
- 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)文章
Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例詳解
在本篇文章里小編給大家整理了關(guān)于Java幸運(yùn)28系統(tǒng)搭建數(shù)組的使用實(shí)例內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2019-09-09在Spring MVC中處理請(qǐng)求參數(shù)的方法總結(jié)
在Spring MVC中處理請(qǐng)求參數(shù)是通過(guò)使用各種注解來(lái)實(shí)現(xiàn)的,本文給大家介紹了在Spring MVC中處理不同類(lèi)型請(qǐng)求參數(shù)的方法,并通過(guò)代碼講解的非常詳細(xì),需要的朋友可以參考下2024-08-08基于Java實(shí)現(xiàn)計(jì)數(shù)排序,桶排序和基數(shù)排序
這篇文章主要為大家詳細(xì)介紹了計(jì)數(shù)排序,桶排序和基數(shù)排序的多種語(yǔ)言的實(shí)現(xiàn)(JavaScript、Python、Go語(yǔ)言、Java),感興趣的小伙伴可以了解一下2022-12-12SpringBoot項(xiàng)目實(shí)現(xiàn)分布式日志鏈路追蹤
這篇文章主要給大家介紹了Spring Boot項(xiàng)目如何實(shí)現(xiàn)分布式日志鏈路追蹤,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07SpringBoot如何取消內(nèi)置Tomcat啟動(dòng)并改用外接Tomcat
這篇文章主要介紹了SpringBoot如何取消內(nèi)置Tomcat啟動(dòng)并改用外接Tomcat,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解決
原來(lái)win10電腦上安裝的是jdk8的版本,因某些原因,現(xiàn)在想換成jdk7的版本,修改環(huán)境變量后,在cmd中執(zhí)行 [java -version]命令,顯示的是7的版本,遇到這樣的問(wèn)題如何解決呢?下面小編給大家分享IntelliJ IDEA cmd和idea Terminal查看java版本不一致的解決方案,一起看看吧2023-09-09IntelliJ IDEA 安裝及初次使用圖文教程(2020.3.2社區(qū)版)
這篇文章主要介紹了IntelliJ IDEA 安裝及初次使用(2020.3.2社區(qū)版),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Mybatis在sqlite中無(wú)法讀寫(xiě)byte[]類(lèi)問(wèn)題的解決辦法
這篇文章主要給大家介紹了關(guān)于Mybatis在sqlite中無(wú)法讀寫(xiě)byte[]類(lèi)問(wèn)題的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10