spring cloud feign 呼叫相關坑記錄以及注意事項總結
阿新 • • 發佈:2019-02-03
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 的,那麼具體就得看工具包實現的不同的,檢視原始碼發現okhttp和HttpURLConnection都不支援(報錯),只有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