使用feign調(diào)用接口時調(diào)不到get方法的問題及解決
feign調(diào)用接口調(diào)不到get方法
記錄今天在使用springcloud的feign調(diào)用接口時踩的坑。
調(diào)用的方法是get方法時調(diào)用不到接口的問題
1.feign調(diào)用時默認的請求方式是post請求,所以如果是要調(diào)用的請求為get請求,并且有參數(shù)傳遞時的解決方法:
(1)在調(diào)用的接口上需要給參數(shù)添加@RequestParam注解
@RequestMapping(value = “/cust-archives”, method = RequestMethod.GET) public List query(@RequestParam String queryCust,@RequestHeader(name=“Range”,required=true)String range) throws Exception;
(2)被調(diào)用的接口的參數(shù)使用restful風格的形式直接拼接參數(shù),給調(diào)用接口的參數(shù)添加@PathVariable注解,
(3)使用json傳值的方式進行數(shù)據(jù)傳輸,給調(diào)用的方法的參數(shù)添加RequestBody
(4)如果需要傳請求頭信息,需要在調(diào)用的接口中添加一個參數(shù),并給參數(shù)加上@RequestHeader(name=“Range”,required=true)注解
例如:
@RequestHeader(name=“Range”,required=true)String range
feign調(diào)用拿不到數(shù)據(jù)
看著是沒事問題,代碼也是和user service一樣但是就是拿不到數(shù)據(jù),直接調(diào)用又可以
@PostMapping("/getUserById") BaseResponse<User> getUserById(Integer id);
要加 @RequestParam就好了
@PostMapping("/getUserById") BaseResponse<User> getUserById(@RequestParam("id") Integer id);
@RequestParam比起 @PathVariable更加坑,@PathVariable啟動會報錯,@RequestParam則是默默無聲
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot 使用poi進行數(shù)據(jù)的導出過程詳解
這篇文章主要介紹了springboot 使用poi進行數(shù)據(jù)的導出過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09springmvc配置線程池Executor做多線程并發(fā)操作的代碼實例
今天小編就為大家分享一篇關(guān)于springmvc配置線程池Executor做多線程并發(fā)操作的代碼實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03