背景:
今天联调的时候发现,使用@FeignClient 请求的时候报错,大概意思是请求数据太大,压缩的时候报错,本地测的时候没这个问题
错误信息:
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens; nested exception is com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens
请求代码:
解决办法:
设置压缩报文的最小上限,把2048 设置大一点,这样就不会压缩你的请求报文,避免报错
feign:
compression:
request:
enabled: true
min-request-size: 2048
response:
enabled: false
按理说上面就可以解决问题了,但是我的报文太大了,所以还是报错 ,直接点,不处理你的报文数据,简单粗暴
feign:
compression:
request:
enabled: false
response:
enabled: false
报错基本没有了,但是还是会有部分报错,后面我发现了,我feign 还配置了下面参数,去掉后就正常了,报文不序列化了
# feign 配置
feign:
sentinel:
enabled: true
okhttp:
enabled: true
结果:
问题解决,正常联调