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   }
  • 相关阅读:
    每天一道LeetCode--141.Linked List Cycle(链表环问题)
    每天一道LeetCode--119.Pascal's Triangle II(杨辉三角)
    每天一道LeetCode--118. Pascal's Triangle(杨辉三角)
    CF1277D Let's Play the Words?
    CF1281B Azamon Web Services
    CF1197D Yet Another Subarray Problem
    CF1237D Balanced Playlist
    CF1239A Ivan the Fool and the Probability Theory
    CF1223D Sequence Sorting
    CF1228D Complete Tripartite
  • 原文地址:https://www.cnblogs.com/suruozhong/p/11454505.html
Copyright © 2011-2022 走看看