奇葩的FeignClient问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇葩的FeignClient问题相关的知识,希望对你有一定的参考价值。

参考技术A

对于上面这个接口,能看出哪里有错吗?服务端返回的报错:

第一反应是见了鬼了,明明是GET,怎么会提示"Request method \'POST\' not supported"。搞了半天才发现是 @Herders里边的键值对冒号后面必须有个空格! 正确的写法:

另外,如果GET方法有一堆参数:

想要设置一个request实体类,把所有参数都包进去,放到HTTP 的body来上传,也会被当成POST。一句话: GET参数不支持复杂对象(只支持String、Integer这些简单对象)

例子如下:

如果传参的时候,因为某些原因给appToken传的是null(并非有意要传null,有时是程序出现了bug)

服务端报错,输出的调试信息如下:

当第一次遇到这个问题的时候,百思不得其解为何appToken会被设为“app-token”,调试了半天才发现是设值null时Feign就会传这个,私以为Feign更合理的做法是提示某某参数为null。

服务端是POST:

Client错把getByProductKey写为GET

客户端调用时报错:

服务端打印的调试信息也很奇怪,明明调的是getByProductKey,怎么变成了getProduct:

如果忘了加@EnableFeignClients,则会直接调callback,导致返回null。

以上是关于奇葩的FeignClient问题的主要内容,如果未能解决你的问题,请参考以下文章

onCheckedChanged这个奇葩的用法我有点不能理解

Maven项目中遇到的奇葩问题(续)

奇葩说第三季被删资源百度云,奇葩说被和谐资源百度网盘

遇见的奇葩问题

因为本地没有配置 localhost 导致的 eclipse 的奇葩问题

记录一奇葩scp问题的分析与解决过程