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   }
  • 相关阅读:
    【刷题】LOJ 6009 「网络流 24 题」软件补丁
    lab 项目
    js内的时间戳指的是当前时间到1970年1月1日00:00:00 UTC对应的毫秒数,和 unix时间戳是对应的秒数,差了1000倍
    js 原生: 身份证脱敏、唯一随机字符串uuid、对于高 index 元素的隐藏与显示
    diy 滚动条 样式 ---- 核心代码
    PC_后台管理系统
    三端兼容项目
    阿里小程序
    到位App_jQuery_art-template
    一步一步 copy163: 网易严选 ---- vue-cli
  • 原文地址:https://www.cnblogs.com/suruozhong/p/11454505.html
Copyright © 2011-2022 走看看