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   }
  • 相关阅读:
    java里面的设计模式
    MHRD_Guide
    flutter 入门(Mac)
    K8S实战-构建Django项目-03-使用共享存储
    《Effective Java》笔记45-56:通用程序设计
    机器学习实验二-集成学习
    -scp Linux之间复制文件和目录
    吴裕雄--天生自然 人工智能机器学习项目:地图数据及细胞图片数据处理报告(续五)
    吴裕雄--天生自然 人工智能机器学习项目:地图数据及细胞图片数据处理报告(续四)
    吴裕雄--天生自然 人工智能机器学习项目:地图数据及细胞图片数据处理报告(续二)
  • 原文地址:https://www.cnblogs.com/suruozhong/p/11454505.html
Copyright © 2011-2022 走看看