請求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);
}
相關文章
- iOS 同步請求 非同步請求 GET請求 POST請求iOS非同步
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- GET請求的引數丟失
- 【轉】怎麼用PHP傳送HTTP請求(POST請求、GET請求)?PHPHTTP
- Android Http請求框架一:Get 和 Post 請求AndroidHTTP框架
- Android okHttp網路請求之Get/Post請求AndroidHTTP
- XHR物件的get請求物件
- get請求和post請求的區別
- 請求框架&移動請求框架
- uni-app的POST請求和GET請求APP
- HTTP GET請求傳bodyHTTP
- 傳送GET請求 示例
- Node.js GET請求Node.js
- SpringCloud OpenFeign Post請求的坑SpringGCCloud
- GET請求引數為中文時亂碼分析
- 有趣的請求引數/請求頭
- 你以為你請求的就是你想請求的嗎?
- get請求和post請求區別詳解
- onethink 如何使用get請求?
- POST與GET請求區別
- HTTP Get,Post請求詳解HTTP
- 使用HttpClient傳送GET請求HTTPclient
- Get和Post請求詳解
- Http請求get與post請求方式的各種相關面試總結HTTP面試
- Python中get、post請求詳解(HTTP請求頭、狀態碼)PythonHTTP
- 4.爬蟲 requests庫講解 GET請求 POST請求 響應爬蟲
- get與post的請求區別
- 解決.NET Core Ajax請求後臺傳送引數過大請求失敗問題
- 網路請求優化之取消請求優化
- ajax請求
- 批量請求
- http請求HTTP
- HTTP 請求HTTP
- URL請求不能解決中文請求的問題
- 請求重定向和請求轉發的區別
- java傳送GET和post請求Java
- go對get、post請求封裝Go封裝
- get,post URL加字尾請求