客户端
@RequestMapping(value = "/friendCircleComment/comment",method =RequestMethod.POST)
R comment(@RequestBody FriendCircleComment friendCircleComment);
服务端
1 @RequestMapping(value = "/comment")2 publicR comment(@RequestBody FriendCircleComment friendCircleComment){3 friendCircleCommentService.comment(friendCircleComment);4 return newR();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 replyMemberId7 ){8 FriendCircleComment friendCircleComment = newFriendCircleComment();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 newR();16 }