服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 使用feign调用接口时调不到get方法的问题及解决

使用feign调用接口时调不到get方法的问题及解决

2022-09-28 15:36菜鸟的自我素养 Java教程

这篇文章主要介绍了使用feign调用接口时调不到get方法的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

feign调用接口调不到get方法

记录今天在使用springcloud的feign调用接口时踩的坑。

调用的方法是get方法时调用不到接口的问题

1.feign调用时默认的请求方式是post请求,所以如果是要调用的请求为get请求,并且有参数传递时的解决方法:

(1)在调用的接口上需要给参数添加@RequestParam注解

?
1
2
@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)注解

例如:

?
1
@RequestHeader(name=“Range”,required=true)String range

feign调用拿不到数据

看着是没事问题,代码也是和user service一样但是就是拿不到数据,直接调用又可以

?
1
2
@PostMapping("/getUserById")
BaseResponse<User> getUserById(Integer id);

要加 @RequestParam就好了

?
1
2
@PostMapping("/getUserById")
BaseResponse<User> getUserById(@RequestParam("id") Integer id);

@RequestParam比起 @PathVariable更加坑,@PathVariable启动会报错,@RequestParam则是默默无声

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

原文链接:https://blog.csdn.net/weixin_42941486/article/details/105187015

延伸 · 阅读

精彩推荐