在使用feign接口调用时,显示400,记录一下问题
在调用方时显示日志:feign.FeignException$BadRequest: status 400 reading xxxx
feign.FeignException$BadRequest: status 400 reading xxxxService#xxxx(List,Integer,String,boolean) at feign.FeignException.errorStatus(FeignException.java:92) ~[feign-core-10.2.3.jar:na] at feign.FeignException.errorStatus(FeignException.java:86) ~[feign-core-10.2.3.jar:na] at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:93) ~[feign-core-10.2.3.jar:na] at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:149) ~[feign-core-10.2.3.jar:na] at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:78) ~[feign-core-10.2.3.jar:na] at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103) ~[feign-core-10.2.3.jar:na] at com.sun.proxy.$Proxy227.manualSplitOrder(Unknown Source) ~[na:na]
在被调用方显示日志:java.lang.IllegalArgumentException: Request header is too large
原因分析:
从日志中也可以看出,Request header is too large,请求头信息太长了,(在上面调用方法时,请求参数里面有一个list的size是1500+)
一般是有2种方案:
1.调整Tomcat的参数,默认值是8k,
在yml中配置:
server:
max-http-header-size: 204800
2.修改feign请求参数,改为RequestBody