用feign请求参数不对,feign调用超时但是处理成功
目录
假参数调用了太多失败的错误消息。这个错误的原因是给出了两种解决方案。假装多参数传输踩踏记录场景。现在问题是解决方案。
feign参数过多调用失败
错误信息
JSON解析错误:非法字符((CTRL-CHAR,code 31)):标记之间只允许常规空格(r,n,t)
当通过feign调用其他服务时,会报告上述错误。传入参数少的时候没有错误,传入参数多的时候会自动取hystrix fuse。
通过层层调查
报这个错误的原因是因为
JSON 解析错误:非法字符((CTRL-CHAR,代码 31)):令牌之间只允许使用常规空格(r、n、t)...
Json解析错误。我开始想到用一个实体类来接收对面返回的参数,所以报了这个错误。我会用一个对象来接收它。
但是结果显示还是会使用fuse,然后用map接收返回参数,还是一样的。后来百度查了一下,需要配置feign,取消压缩。
我试过了。没用。最后上百度说传输的数据是压缩的。只需添加feign的配置,移除压缩限制即可。但还是没用。无奈之下,只能咨询同事。
00-1010第一种:收缩被叫方返回数据(我只是用这个方法,但这个方法不是长久之计)
使用第二种:s本地http请求相反的api。网上有很多工具包。
00-1010真是个大日子。在网上看了很多feign的博客,找不到基本类型和实体类的处理方法。写在这里,该死的。
00-1010如果现在有寻呼请求,前端给我们用户端的参数如下:
int类型的PageNum,表示int类型的pageSize,表示每页的数据条数和实体类的相关参数。然后我们使用百里叶,所以我们需要一个模型将分页相关的参数返回到前端。
00-1010我准备把pageNum,pageSize,entity class传给服务器,让他把分页结果的相关参数给我。
给出了两种解决办法
1. 消费端controller:
这里的参数怎么接收?
2. 消费端feign接口对应方法:
将@RequestParam添加到两个int类型的数据中,将@ request body3. 服务端controller:添加到实体类中。
与假装接口方法一样
将@RequestParam添加到两个int类型的数据中,将@RequestBody添加到实体类中,最终不会报告错误xdm。
以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。