請求OpenFeign的GET請求時,請求為何失敗?
請求OpenFeign的GET請求時,請求為何失敗?
在OPENFEGIN的介面中定義了一個GET請求方式的方法,且方法中帶有入參,入參並沒有任何新增任何註解,如下所示:
@FeignClient(name = "myfegin", path = "/api/test")
public interface MyFeignClient {
@GetMapping(path = "/getMessage")
JsonResult<String> getVideoDuration(String id);
}
當我們通過另一個微服務中的介面通過 OpenFeign 的客戶端呼叫該介面時,提示介面呼叫失敗,自然也就沒有任何返回。
通過在Feign所在的客戶端斷點,發現如下提示:
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported
at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:213)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:422)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:367)
at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal(RequestMappingInfoHandlerMapping.java:110)
at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal(RequestMappingInfoHandlerMapping.java:59)
// 省略錯誤資訊
看到上述報錯資訊時,也是百思不得其解,Request method 'POST' not supported
不支援 POST 請求,但是我們所傳送的是 GET 請求,由此我們借用斷點除錯發現,當我們傳送的 GET 請求到了 OpenFeign 服務端後,服務端檢測到該請求攜帶一個入參,並且入參沒有做任何註解修飾,因此預設將該請求當做 POST 請求處理,而服務端對應該路徑的請求只有 GET ,所以報錯。
解決方案:
在 FeignClient 客戶端的 GET 請求中的入參前面加入註解修飾:@requestParam 即可解決該問題
@FeignClient(name = "myfegin", path = "/api/test")
public interface MyFeignClient {
@GetMapping(path = "/getMessage")
JsonResult<String> getVideoDuration(@RequestParam("id") String id);
}
相關文章
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- GET請求的引數丟失
- python requests get請求 如何獲取所有請求Python
- crmeb系統請求介面超時,超過十秒就請求失敗
- SpringCloud OpenFeign Post請求的坑SpringGCCloud
- 大請求、請求超時問題
- get請求和post請求的區別
- uni-app的POST請求和GET請求APP
- vue 發起get請求和post請求Vue
- onethink 如何使用get請求?
- Node.js GET請求Node.js
- requests模組 - get 請求
- HTTP GET請求傳bodyHTTP
- 傳送GET請求 示例
- GET請求引數為中文時亂碼分析
- 有趣的請求引數/請求頭
- 你以為你請求的就是你想請求的嗎?
- Python中get、post請求詳解(HTTP請求頭、狀態碼)PythonHTTP
- POST與GET請求區別
- get與post的請求區別
- 4.爬蟲 requests庫講解 GET請求 POST請求 響應爬蟲
- Http請求get與post請求方式的各種相關面試總結HTTP面試
- 解決.NET Core Ajax請求後臺傳送引數過大請求失敗問題
- axios請求超時,設定重新請求的完美解決方法iOS
- 網路請求優化之取消請求優化
- 瀏覽器如何將你的http請求轉為https請求?瀏覽器HTTP
- axios 發get,post 請求小結iOS
- python介面測試—get請求(一)Python
- Java Http Get Post 請求工具類JavaHTTP
- go對get、post請求封裝Go封裝
- java傳送GET和post請求Java
- get,post URL加字尾請求
- ajax請求
- axios 請求iOS
- URL請求不能解決中文請求的問題
- 關於在request請求時,處理請求引數的問題
- 為何要在componentDidMount裡面傳送請求?
- 使用request庫的get方法發起GET請求