springboot微服务调用之间,发送feign请求,请求时候时间参数有值,接收请求的那一段时间参数没值

如图我发起请求时候,参数有数据。但是服务提供方并没收到数据

我们对比了数据类型,类型都是一样的

然后我尝试了百度需求相关类似的问题,得到的答案是说时区,时间上面加注解,数据类型等等。

但是据我分析,我们数据类型一致,我们都在同一个局域网,时区也是一样的。关于时区的设置都是由架构师在nacos里面做了统一配置。所以上文所述论点基本无用,但是看到它提示说分析网络日志。但是框架并没有提供网络日志打印的功能,再深入分析。http请求不管怎么封装,底层基本都是基于http协议做了处理,http协议规定了数据报文要类似下面这样。

”请求报文由起始行、首部字段、空行和实体主体组成,其中起始行包含请求方法、请求URL和HTTP版本;首部字段描述请求的附加信息,以键值对的形式出现;空行用于分隔首部字段和实体主体;实体主体为请求的数据,可以为空“

根据定义可知,数据一定是要写在一个位子的,要么写在URL上面,要么写在请求头,要么写在请求体。 而feign 接口定义时候是要加注解的。比如方法使用get 还是post ,数据写在哪个位置。比如写在请求体,或者请求头。这个就是开发者自行决定的。根据这个思路去查看feign 的定义。

观察到所有post请求的方法,除了1个,其余全都用了 @SpringQueryMap 注解,不明白此注解含义,百度一下

由此可知,此注解是专为get请求搭配使用,于是通知服务提供方,修改注解。改成 @RequestBody

再次调用,参数成功传递。

得出的教训:不要轻易相信那些看着“合理”的,但是自己并不理解的事情就照搬照抄。 凡事需要自己先理解清楚。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值