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
分类:
|--- SpringCloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?