ToB企服应用市场:ToB评测及商务社交产业平台

标题: JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regul [打印本页]

作者: 兜兜零元    时间: 2024-6-11 10:50
标题: JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regul
一、报错产生场景

RuoYi-Cloud OpenFeign远程调用接口异常错误,错误信息如下:
  1. 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
  2. at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 2]
复制代码
二、问题产生原因

   远程接口调用参数过大,凌驾当前设置的最大参数长度,部分参数被截掉,导致json字符串不完备,也就解析出问题了。
  附上application-dev.yml中feign的设置
  1. feign:
  2.   sentinel:
  3.     enabled: true
  4.   okhttp:
  5.     enabled: true
  6.   httpclient:
  7.     enabled: false
  8.   client:
  9.     config:
  10.       default:
  11.         connectTimeout: 10000
  12.         readTimeout: 10000
  13.   compression:
  14.     request:
  15.       enabled: true
  16.       min-request-size: 8192
  17.     response:
  18.       enabled: true
复制代码
设置说明:
   查阅资料,定位到该异常是由于Spring Cloud Feign 哀求其他微服务时json数据被压缩导致的
  三、解决方案

1、减小参数的长度(这种方案看详细场景)
2、关闭哀求数据压缩
  1. feign.compression.request.enabled: false
  2. feign.compression.response.enabled: false
复制代码
3、设置哀求压缩的最小哀求大小
  1. feign.compression.request.min-request-size: 8192
复制代码
也就是说只有当哀求的参数大于8192,及8kb,才会将参数举行压缩。
固然这个参数大小自界说

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4