首页 > 作文

SpringCloud:feign对象传参和普通传参及遇到的坑解决

更新时间:2023-04-06 04:04:54 阅读: 评论:0

feign对象传参和普通传参及遇到的坑

对象传参

使用@requestbody来指定传参对象

@requestmapping(value = "/v2/mattercode/gencode", method = requestmethod.post)  resultrespon<string> getcode(@requestbody mattercodebo mattercodebo);

注意:@requestbody在一个方法内有且只有一个,不能同时存在两个!

普通传参

普通传参使用@requestparam来指定参数

@requestmapping(value = "正方形的周长公式taskapicontroller/getall", method = requestmethod.post)list<taskvo> getall(@requestparam("name") string name);

注意:@安全隐患怎么写requestparam必须指定参数名(”name”),否则报错:requestparam.value() was empty on parameter 0

遇到的坑-1

首先再次强调feign是通过http协议调用服务的,重点是要理解这句话,

如果feignclient中的方法有@postmapping注解 ,则微服务taskapicontroller中对应方法的注解也应当保持一致为@postmapping,如果不一致,则会报404的错误

调用失败后会触发它的熔断机制,如果@feignclient中不写@feignclient(fallback = taskfeignclientdegraded.class),会直接报错

11:00:35.686 [http-apr-8086-exec-8] debug c.b.p.m.b.c.abstractbacontroller – got an exception
com.netflix.hystrix.exception.hystr救生员ixruntimeexception: taskfeignclient#getall() failed and no fallback available.
at com.netflix.hystrix.abstractcommand$22.call(abstractcommand.java:819)
at com.netflix.hystrix.abstractcommand$22.call(abstractcommand.java:804)

遇到的坑-2

报错信息:

feign.feignexception:status 400 reading xxx#xxxx(string); content:

原因:因为feign的那个方法使用的@reqestparam注解,这个接收的参数长度过长造成的,这也是feign就算使用post方法,参数也会放在请求地址后面,而不是放在请求体里面。

解决办法:将参数封装成对象,使用@requestbody标明参数

feign传递复杂参数对象需要注意的地方

传递复杂参数对象需要用post

另外需要注意,feign不支持使用getmapping 和postmapping

@requestmapping(value="ur/save",method=requestmethod.post)

在传递的过程中

复杂对象使用@requestbody进行注解,同时接收端也需要使用@requestbody这个注解。

我遇一个坑:

消费端使用了@requestbody而服务端没有接收@requestbody,这时参数会接收不完整。

//消费端 @requestmapping(value="女排精神作文ur/save",method=requestmethod.post) public ur save(@requestbody ur ur);//服务端@postmapping("save") public ur save(@requestbody ur ur) {  system.out.println(ur);  return urrvice.save(ur); }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887活力工场551.com。

本文发布于:2023-04-06 04:04:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/a00e7ee1a4e7a2b3a28510496fc2ba3f.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:SpringCloud:feign对象传参和普通传参及遇到的坑解决.doc

本文 PDF 下载地址:SpringCloud:feign对象传参和普通传参及遇到的坑解决.pdf

标签:参数   注解   对象   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图