feign.FeignException: status 400 reading xxx 异常解决方案

1、问题描述#

今天使用OpenFeign调用远程接口时,eign.FeignException: status 400 reading,

于是百度解决。先做如下总结

 

2、产生原因#

背景:项目使用的是微服务架构,采用springboot来开发,所有的服务都是基于内嵌tomcat来运行

1) 传递的参数可能为空值

2) Header信息长度过长 或者 参数信息过长

3) 参数没有使用注解指定

4) 方法没有指定请求方式

 

3、解决方案#

方案一(针对原因1):

@RequestParam(value = "xxx",required = false) String xxx

 

方案二(针对原因2):

修改内嵌tomcat的参数,内嵌tomcat对参数的默认限制是8K,例如:可以修改配置文件server.max-http-header-size=20480
将参数封装成对象,使用 @RequestBody注解 在feign消费服务上

 

方案三(针对原因3):

@RequestParam(value = "xxx",required = false) String xxx

 

方案四(针对原因4)

Feign 请求服务,在Controller 之上的 xxxMapping 的注解,如果使用 @RequestMapping 的话, 
需要声明method 属性, 否则就会引发这个异常,例如:@RequestMapping(value="/...,method=RequestMethos.GET)

 

参考链接:https://blog.csdn.net/weixin_44299027/article/details/104536836

 

posted @   青岑  阅读(3246)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示
主题色彩