使用FeignClient發送http/https請求,並動態設置請求頭


在項目中,常見的發起http/https請求的方式一般是通過「okhttp3.OkHttpClient」,通過顯式的拼接url、添加請求頭、指定url就可以創建一個Request,然后通過OkHttpClient發起請求。如下

 但是這種方式有問題:

  • url需要仔細拼接,防止url出錯
  • 如果有大量的地方有這種業務需求,會導致重復代碼太多,並且由於url的拼接規則都不一樣,無法將這些重復代碼提取出來,造成了項目臃腫。
  • 結構化不清楚

所以可以使用FeignClient,通過定義接口的方式將請求結構化。

  •  先定義一個接口。
  • 添加FeignClinet注解,其中「url」表示請求的基地址,「name」的值就是Spring容器中聲明的bean名字。
  • 編寫方法。

 該接口的意思是發送「get」請求,並且該請求的請求頭是由「@RequestHeader」指定的,「@RequestHeader」中的「authorization」是請求頭的名字,之后在調用該方法的時候傳入的值作為請求頭的值。其他的也類似。

「@GetMapping」中的「consumes」指的是發起請求時的「content-type=application/json」,而「produces」是告訴服務器,我需要接受到的數據格式為application/json,即請求頭中的「accept=application/json」。

Post請求:

其實FeignClient的使用方法和正常使用Spring MVC類似。當然,方法的返回值也可以是實體類,FeignClient可以自動封裝對象。

常見的問題:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM