欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot如何通過Feign調(diào)用傳遞Header中參數(shù)

 更新時間:2023年04月26日 10:38:56   作者:溫柔的星空,讓你感動  
這篇文章主要介紹了SpringBoot通過Feign調(diào)用傳遞Header中參數(shù),本文給大家分享兩種解決方案給大家詳細(xì)講解,需要的朋友可以參考下

【SpringBoot】通過Feign調(diào)用傳遞Header中參數(shù)

如何通過Feign傳遞Header參數(shù)

問題描述

我們在SpringCloud中使用Feign請求另一個服務(wù)的Api接口時,有將Header中參數(shù)傳遞下去的需求,如果不做特殊處理,就會將Header中的參數(shù)丟失。

解決方案

方案一:通過 @RequestHeader(name = "headerName") 來傳遞

例如:Feign定義如下

@FeignClient(name = "service-name")
public interface XXXFeignClient {
    @RequestMapping(value = "/user/getUserTicket", method = RequestMethod.GET)
    String getUserTicket(@RequestParam("id") String id);
}

假設(shè)在服務(wù)service-name中的/user/getUserTicket接口需要從Header中取Referer數(shù)據(jù),那么我們可以將上面代碼進行改造:

@FeignClient(name = "service-name")
public interface XXXFeignClient {
    @RequestMapping(value = "/user/getUserTicket", method = RequestMethod.GET)
    String getUserTicket(@RequestParam("id") String id, @RequestHeader(name = "Referer") String referer);
}

然后在調(diào)用的時候?qū)eferer參數(shù)傳遞進去即可,如

public String getTicketById(@RequestParam("id") String id, HttpServletRequest request) {
        String referer = request.getHeader("Referer");
        return xxxFeignClient.getUserTicket(id, referer);
    }

方案二:通過實現(xiàn) RequestInterceptor 接口

 首先,自定義實現(xiàn)RequestInterceptor接口的apply方法,如下

import org.springframework.stereotype.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
@Configuration
public class FeignConfiguration implements RequestInterceptor {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
                .getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        Enumeration<String> headerNames = request.getHeaderNames();
        if (headerNames != null) {
            while (headerNames.hasMoreElements()) {
                String name = headerNames.nextElement();
                String values = request.getHeader(name);
                requestTemplate.header(name, values);
            }
        }
    }
}

 然后將自定義的配置類配置到Feign中,就可以實現(xiàn)該Feign中接口Header參數(shù)的傳遞

@FeignClient(value = "service-name" ,configuration = FeignConfiguration.class)
    public interface XXXFeignClient {
    }

到此這篇關(guān)于SpringBoot 通過Feign調(diào)用傳遞Header中參數(shù)的文章就介紹到這了,更多相關(guān)SpringBoot Feign調(diào)用傳遞Header參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼

    java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼

    最近做一個需求,需要請求第三方接口上傳文件,該請求類型是form-data請求,本文就來介紹一下java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼,感興趣的可以了解一下
    2023-12-12
  • SpringBoot結(jié)合Redis實現(xiàn)緩存管理功能

    SpringBoot結(jié)合Redis實現(xiàn)緩存管理功能

    本篇文章主要介紹spring boot緩存管理機制及相關(guān)概念,以及如何結(jié)合Redis實現(xiàn)緩存管理,文中通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-01-01
  • JSP頁面無法識別EL表達(dá)式問題解決方案

    JSP頁面無法識別EL表達(dá)式問題解決方案

    這篇文章主要介紹了JSP頁面無法識別EL表達(dá)式問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java實戰(zhàn)員工績效管理系統(tǒng)的實現(xiàn)流程

    Java實戰(zhàn)員工績效管理系統(tǒng)的實現(xiàn)流程

    只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+Mysql+Maven+HTML實現(xiàn)一個員工績效管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • Java使用split分割無效獲取不到預(yù)期效果的解決辦法

    Java使用split分割無效獲取不到預(yù)期效果的解決辦法

    這篇文章主要給大家介紹了關(guān)于Java使用split分割無效獲取不到預(yù)期效果的解決辦法,java的String類中有個split方法,這個是我們經(jīng)常使用到的,需要的朋友可以參考下
    2023-08-08
  • Java BufferedImage轉(zhuǎn)換為MultipartFile方式

    Java BufferedImage轉(zhuǎn)換為MultipartFile方式

    這篇文章主要介紹了Java BufferedImage轉(zhuǎn)換為MultipartFile方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot整合Hashids實現(xiàn)數(shù)據(jù)ID加密隱藏的全過程

    SpringBoot整合Hashids實現(xiàn)數(shù)據(jù)ID加密隱藏的全過程

    這篇文章主要為大家詳細(xì)介紹了SpringBoot整合Hashids實現(xiàn)數(shù)據(jù)ID加密隱藏的全過程,文中的示例代碼講解詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • spring單元測試下模擬rabbitmq的實現(xiàn)

    spring單元測試下模擬rabbitmq的實現(xiàn)

    這篇文章主要介紹了spring單元測試下模擬rabbitmq的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • idea2019版與maven3.6.2版本不兼容的解決方法

    idea2019版與maven3.6.2版本不兼容的解決方法

    這篇文章主要介紹了idea2019版與maven3.6.2版本不兼容的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • JVM詳解之匯編角度理解本地變量的生命周期

    JVM詳解之匯編角度理解本地變量的生命周期

    這篇文章主要介紹了JVM詳解之匯編角度理解本地變量的生命周期,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論