@RequestBody注解的使用

10 篇文章 0 订阅
9 篇文章 0 订阅

先把结论放出来:
  @RequestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。

  今天在使用springCloud中的Openfeign时,一开始遇到了一个问题,就是我通过Talend API Tester修改数据时,传过去的json类型数据总是无法被消费者的控制器接收到参数。消费者的控制器签名如下:

@PutMapping
    public boolean updateHandler(Depart depart) {
        return departService.modifyDepart(depart);
    }

问题是我之前测试的时候好像没有问题,我是可以修改数据的。经过一番折腾,我才想起来,我一开始修改数据是利用的form表单提交的,其传入的数据类型并不是json类型的,如下图所示:
在这里插入图片描述
所以我用上面那种控制器的签名方式是能接收到前端传过去的参数的,后面我改成传json类型的数据后(如下图所示),结果一直接收不到数据。
在这里插入图片描述
解决方式:在控制器方法签名的参数前面加上@RequetBody注解。修改后的注解如下代码所示,同时需要给提供者的控制器签名也加上@RequetBody,如果OpenFeign的代理接口传过去的参数也是json类型的话(我这里就是json类型的)。

@PutMapping
    public boolean updateHandler(@RequestBody Depart depart) {
        return departService.modifyDepart(depart);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值