错误信息:
JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens…
通过feign去调用其他服务的时候报上面的错误了,当传入的参数比较少的时候并没有错误,但是传入参数一多就自动走hystrix熔断器了。
在开发过程中,我们经常需要使用Feign来调用其他服务的API。然而,有时候会遇到一些奇怪的错误,例如上述JSON解析错误。这个错误通常是由于传入的数据中包含了非法字符所引起的。
如果传入的参数比较少,可能不会出现这个问题,但一旦传入的参数数量增加,就会出现这个错误,并导致Feign自动触发Hystrix熔断器。这个问题可能会很棘手,因为它可能会导致系统无法正常工作。
在排查这个问题时,我们可以尝试使用不同的方式去接收对方返回的参数。例如,使用一个Object去接收返回参数,或者使用一个Map来接收返回参数。然而,这些尝试都可能无法解决这个问题。
为了解决这个问题,我们需要在Feign的配置中添加一些设置,以确保传输的数据不会被压缩。具体来说,我们需要取消Feign的压缩限制,这样就可以避免传输数据被压缩所导致的问题。
然而,有时候即使我们添加了这些配置,问题仍然无法得到解决。如果这种情况发生,我们可以尝试使用一些其他的解决方法。例如,我们可以尝试缩小被调用方返回的数据,或者使用原生的HTTP去请求对面的API,这些都可能是有效的解决方法。
总之,当我们遇到Feign调用其他服务时出现JSON解析错误的问题时,我们应该仔细检查Feign的配置,并尝试使用不同的方式去接收返回参数,以及使用其他解决方法来解决这个问题。