使用feign调用接口时调不到get方法的问题及解决
作者:菜鸟的自我素养
这篇文章主要介绍了使用feign调用接口时调不到get方法的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
feign调用接口调不到get方法
记录今天在使用springcloud的feign调用接口时踩的坑。
调用的方法是get方法时调用不到接口的问题
1.feign调用时默认的请求方式是post请求,所以如果是要调用的请求为get请求,并且有参数传递时的解决方法:
(1)在调用的接口上需要给参数添加@RequestParam注解
@RequestMapping(value = “/cust-archives”, method = RequestMethod.GET) public List query(@RequestParam String queryCust,@RequestHeader(name=“Range”,required=true)String range) throws Exception;
(2)被调用的接口的参数使用restful风格的形式直接拼接参数,给调用接口的参数添加@PathVariable注解,
(3)使用json传值的方式进行数据传输,给调用的方法的参数添加RequestBody
(4)如果需要传请求头信息,需要在调用的接口中添加一个参数,并给参数加上@RequestHeader(name=“Range”,required=true)注解
例如:
@RequestHeader(name=“Range”,required=true)String range
feign调用拿不到数据
看着是没事问题,代码也是和user service一样但是就是拿不到数据,直接调用又可以
@PostMapping("/getUserById") BaseResponse<User> getUserById(Integer id);
要加 @RequestParam就好了
@PostMapping("/getUserById") BaseResponse<User> getUserById(@RequestParam("id") Integer id);
@RequestParam比起 @PathVariable更加坑,@PathVariable启动会报错,@RequestParam则是默默无声
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。