java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > feign调用接口调不到get方法

使用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则是默默无声

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文