文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

feign参数过多导致调用失败的解决方案

2024-04-02 19:55

关注

feign参数过多调用失败

错误信息

JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is allowed between tokens…

通过feign去调用其他服务的时候报上面的错误了,当传入的参数比较少的时候并没有错误,但是传入参数一多就自动走hystrix熔断器了。

通过层层排查

报这个错误的原因是因为

JSON 解析错误:非法字符((CTRL-CHAR,代码 31)):令牌之间只允许使用常规空格(\r、\n、\t)...

json解析错误了,开始想的是用一个实体类去接收对面返回的参数,所以报这个错误,好吧,那我用一个object去接收吧,

但是结果显示还是照样会走熔断器,接着就用map去接收返回参数,还是一样,后来去百度查了说是要配置feign,取消压缩,

试了,没用。最后去百度一下说是因为传输的数据被压缩了,只要加入feign的配置去除压缩限制就行了。可是还是没用,无奈之下只能请教自己的同事。

给出了两种解决办法

第一种:将被调用方的返回数据缩小(我就是用的这种方法,但是这个方法不是长久之计)

第二种:使用原生的http去请求对面的api,网上有很多的工具包。

feign多参数传递踩坑记录

真的是头大的一天,看了网上好多feign传参的博客,半天找不到怎么处理又传递基本类型又传递实体类的,赶紧在这写下来,可恶

场景

假如现在有一个分页的请求,前端给了我们消费端的参数有:

然后我们用的是thymeleaf,所以需要一个model给前端返回分页相关参数

现在的问题是

我要把pageNum、pageSize和实体类传递给服务端,让他给我分页结果的相关参数

解决方案

1. 消费端controller:

这里的参数该怎么接收怎么接收

2. 消费端feign接口对应方法:

3. 服务端controller:

和feign接口方法一样

终于是不会报错了xdm

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯