spring feign client [CTRL-CHAR, code 31]解决办法

8月 30, 2022 |

异常提示如下,
Caused by: com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)):
请求报文没有编码=31的字符呀,为啥会报这个异常呢, 一番google,发现是feign 压缩相关的配置没设置好

feign.compression.request.enabled=true
feign.compression.response.enabled=true

正常的http 压缩是客户端发送接受gzip的http 头, 然后服务器返回压缩格式的内容, 而feign client是服务请求另一个服务, feign.compression.request.enabled=true 将请求压缩, 需要服务器能解压, 而spring gateway 和embed tomcat 是没有这个能力的,所以最简单的办法是将这两个属性设置为false. 顺便说一下,只有当消息体的字节数>配置的阈值(默认2028)才会触发压缩

参考文档:

stackoverflow feign decodingexception-json

Posted in: spring practise

Comments are closed.