feign.FeignException: status 400 reading (后面是自己的具体的异常信息)异常解决方案

发布于:2022-11-09 ⋅ 阅读:(15) ⋅ 点赞:(0) ⋅ 评论:(0)

问题产生

  • 在请求某个接口时, 在接口异常的情况下,一次正常返回异常信息,紧接着请求就会报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注解

---------------------------细心从每一个小细节开始-------------------------