feign.FeignException: status 400 reading (后面是自己的具体的异常信息)异常解决方案
问题产生
- 在请求某个接口时, 在接口异常的情况下,一次正常返回异常信息,紧接着请求就会报feign.FeignException: status 400 reading xxx 异常的问题,具体问题如下几点:
OpenFeign远程接口与调用者的接口参数是否一致,是否为空
传递的参数可能为空值
Header信息长度过长 或者 参数信息过长!!!!!
参数没有使用注解指定
方法没有指定请求方式
第一个问题:OpenFeign远程接口与调用者的接口参数是否一致,是否为空
查看接口问题,接口的提供与调用是否一样。如果默认没有传值,加入 required = false,不然会空值报错
第二个问题:Header信息长度过长 或者 参数信息过长!(本人就是这个问题)
修改内嵌tomcat的参数,内嵌tomcat对参数的默认限制是8K,例如:可以修改配置文件server.max-http-header-size=20480
提示:server.Tomcat.max-http-header-size=20480已经是过时的方法了,不可用,推荐使用server.max-http-header-size=20480
第三个问题:参数没有使用注解指定
@RequestParam(value = "xxx",required = false) String xxx 参数尽量统一一样,不要前端为Name,后端接收为name
小细节问题
第四个问题:方法没有指定请求方式
Feign 请求服务,在Controller 之上的 xxxMapping 的注解,如果使用 @RequestMapping 的话, 需要声明method 属性,
否则就会引发这个异常,例如:@RequestMapping(value="/...,method=RequestMethos.GET)
注意事项:只能使用@RequstMapping注解,不能使用GetMapping注解
---------------------------细心从每一个小细节开始-------------------------