zoukankan      html  css  js  c++  java
  • feignClient传参(参数为对象类型)的一个坑

    客户端

        @RequestMapping(value = "/friendCircleComment/comment",method = RequestMethod.POST)
        R comment(@RequestBody FriendCircleComment friendCircleComment);

    服务端

    1   @RequestMapping(value = "/comment")
    2   public R comment(@RequestBody FriendCircleComment friendCircleComment){
    3     friendCircleCommentService.comment(friendCircleComment);
    4     return new R();
    5   }

    这么传参是没问题的,服务端也能接收到

    但是,问题来了,

    小程序的post请求的header必须为

      header:{ 'content-type':'application/x-www-form-urlencoded'  }, 

    导致后台为@RequestBody接收不到参数,

    feignClient默认参数请求类型是

    header:{ 'content-type':'application/json'  }, 

    定义@RequestBody接收参数的headers类型必须为 header:{ 'content-type':'application/json'  }, 

    所以这样就有冲突,feignClient和定义为'content-type':'application/x-www-form-urlencoded'的请求接口不能共用

    解决方法

    不使用对象接收,使用基本类型接收

    如下

    客户端

    1     @RequestMapping(value = "/friendCircleComment/comment",method = RequestMethod.POST)
    2     R comment(@RequestParam(value = "friendCircleId",required = false)Integer friendCircleId,
    3               @RequestParam(value = "memberId",required = false)Integer memberId,
    4               @RequestParam(value = "parentId",required = false)Integer parentId,
    5               @RequestParam(value = "comment",required = false)String comment,
    6               @RequestParam(value = "replyMemberId",required = false)Integer replyMemberId);

    服务端

     1   @RequestMapping(value = "/comment")
     2   public R comment(@RequestParam(value = "friendCircleId",required = false)Integer friendCircleId,
     3                    @RequestParam(value = "memberId",required = false)Integer memberId,
     4                    @RequestParam(value = "parentId",required = false)Integer parentId,
     5                    @RequestParam(value = "comment",required = false)String comment,
     6                    @RequestParam(value = "replyMemberId",required = false)Integer replyMemberId
     7                    ){
     8     FriendCircleComment friendCircleComment = new FriendCircleComment();
     9     friendCircleComment.setFriendCircleId(friendCircleId);
    10     friendCircleComment.setMemberId(memberId);
    11     friendCircleComment.setParentId(parentId);
    12     friendCircleComment.setComment(comment);
    13     friendCircleComment.setReplyMemberId(replyMemberId);
    14     friendCircleCommentService.comment(friendCircleComment);
    15     return new R();
    16   }
  • 相关阅读:
    sql 生成随机数 以及不重复随机数
    值提供器 AND 模型绑定器
    web项目在iis配置好后不能正确访问问题集锦,以及IIS常规设置
    js
    性能优化
    MVC3;0问题与知识点
    EntityFramework
    MSSQL2008 临时总结文档2014
    py--使用__slots__
    py--使用@property
  • 原文地址:https://www.cnblogs.com/suruozhong/p/11454505.html
Copyright © 2011-2022 走看看