1. 程式人生 > >spring cloud feign 呼叫相關坑記錄以及注意事項總結

spring cloud feign 呼叫相關坑記錄以及注意事項總結

1.feign client 呼叫端List型別用@RequestParam 服務端用 @RequestParam 接收引數

2.feign client 端引數為實體類傳遞用@RequestBody,服務端用@RequestBody接收引數

3. Connection refused: connect executing POST 錯誤時因為

很明顯是最終feign執行http請求時把這個方法認定為POST,但feign client中又定義了RequestMethod.GET 或 @GetMapping,衝突導致報錯

那麼為什麼feign會認為這個方法是post呢?

根據http協議定義是支援@RequestBody+ RequestMethod.GET

的,那麼具體就得看工具包實現的不同的,檢視原始碼發現okhttpHttpURLConnection都不支援(報錯),只有httpclient支援。(預設走HttpURLConnection會報錯

我們知道只有httpclient支援@RequestBody+ RequestMethod.GET,所以我們必須滿足條件走HttpClientFeignLoadBalancedConfiguration才

需要引入pom依賴

<dependency>
     <groupId>io.github.openfeign</groupId>
     <artifactId>feign-httpclient</artifactId>
 </dependency>

具體請檢視:https://www.cnblogs.com/dennyzhangdd/p/7978454.html