中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么對Spring的Resttemplate調用進行攔截

發布時間:2022-10-18 15:56:12 來源:億速云 閱讀:209 作者:iii 欄目:編程語言

這篇文章主要介紹“怎么對Spring的Resttemplate調用進行攔截”,在日常操作中,相信很多人在怎么對Spring的Resttemplate調用進行攔截問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么對Spring的Resttemplate調用進行攔截”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Spring RestTemplate經常被用作客戶端向Restful API發送各種請求,也許你也碰到過這種需求,很多請求都需要用到相似或者相同的Http Header。如果在每次請求之前都把Header填入HttpEntity/RequestEntity,這樣的代碼會顯得十分冗余。

Spring提供了ClientHttpRequestInterceptor接口,可以對請求進行攔截,并在其被發送至服務端之前修改請求或是增強相應的信息。

首先,我們自定義一個攔截器 UserContextInterceptor

public class UserContextInterceptor implements ClientHttpRequestInterceptor {
    private static final Logger logger = LoggerFactory.getLogger(UserContextInterceptor.class);
    @Override
    public ClientHttpResponse intercept(
            HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
            throws IOException {

        HttpHeaders headers = request.getHeaders();
        headers.add("test", "我是攔截器添加的請求頭");
        return execution.execute(request, body);
    }
}

這個攔截器的作用很簡單,就是往請求頭里面添加一個信息。

接下來要想對RestTemplate起作用,還需要一些配置:我們需要定義一個 restTemplate bean,然后,把上面我們自定義的攔截器給添加進去。

@LoadBalanced
    @Bean
    public RestTemplate getRestTemplate(){
        RestTemplate template = new RestTemplate();
        List interceptors = template.getInterceptors();
        if (interceptors==null){
            template.setInterceptors(Collections.singletonList(new UserContextInterceptor()));
        }
        else{
            interceptors.add(new UserContextInterceptor());
            template.setInterceptors(interceptors);
        }

        return template;
    }

有了這個bean定義,每當使用 @Autowrited注解將 RestTemplate 注入一個類,就會使請求頭中添加一個test的信息。

到此,關于“怎么對Spring的Resttemplate調用進行攔截”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郁南县| 翼城县| 东辽县| 古田县| 蒙阴县| 乾安县| 古浪县| 山阳县| 嘉鱼县| 仙居县| 金昌市| 定边县| 乌拉特中旗| 疏勒县| 涡阳县| 赞皇县| 柳州市| 额敏县| 宁国市| 开平市| 琼中| 来安县| 房山区| 二连浩特市| 革吉县| 庆安县| 思南县| 威信县| 彭山县| 孟津县| 社旗县| 灌南县| 鄂伦春自治旗| 弥勒县| 紫金县| 光泽县| 故城县| 东乌珠穆沁旗| 长丰县| 白朗县| 蒙城县|