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   }
  • 相关阅读:
    HDU 1828 Picture (线段树:扫描线周长)
    [USACO18OPEN] Multiplayer Moo (并查集+维护并查集技巧)
    NOIP2016 天天爱跑步 (树上差分+dfs)
    NOIP2013 华容道 (棋盘建图+spfa最短路)
    NOIP2015 运输计划 (树上差分+二分答案)
    NOIP2018 前流水账
    luogu P2331 [SCOI2005]最大子矩阵
    luogu P2627 修剪草坪
    CF101D Castle
    luogu P2473 [SCOI2008]奖励关
  • 原文地址:https://www.cnblogs.com/suruozhong/p/11454505.html
Copyright © 2011-2022 走看看