客户端

    @RequestMapping(value = "/friendCircleComment/comment",method = RequestMethod.POST)
R comment(@RequestBody FriendCircleComment friendCircleComment);

服务端

   @RequestMapping(value = "/comment")
public R comment(@RequestBody FriendCircleComment friendCircleComment){
friendCircleCommentService.comment(friendCircleComment);
return new R();
}

这么传参是没问题的,服务端也能接收到

但是,问题来了,

小程序的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'的请求接口不能共用

解决方法

不使用对象接收,使用基本类型接收

如下

客户端

     @RequestMapping(value = "/friendCircleComment/comment",method = RequestMethod.POST)
R comment(@RequestParam(value = "friendCircleId",required = false)Integer friendCircleId,
@RequestParam(value = "memberId",required = false)Integer memberId,
@RequestParam(value = "parentId",required = false)Integer parentId,
@RequestParam(value = "comment",required = false)String comment,
@RequestParam(value = "replyMemberId",required = false)Integer replyMemberId);

服务端

   @RequestMapping(value = "/comment")
public R comment(@RequestParam(value = "friendCircleId",required = false)Integer friendCircleId,
@RequestParam(value = "memberId",required = false)Integer memberId,
@RequestParam(value = "parentId",required = false)Integer parentId,
@RequestParam(value = "comment",required = false)String comment,
@RequestParam(value = "replyMemberId",required = false)Integer replyMemberId
){
FriendCircleComment friendCircleComment = new FriendCircleComment();
friendCircleComment.setFriendCircleId(friendCircleId);
friendCircleComment.setMemberId(memberId);
friendCircleComment.setParentId(parentId);
friendCircleComment.setComment(comment);
friendCircleComment.setReplyMemberId(replyMemberId);
friendCircleCommentService.comment(friendCircleComment);
return new R();
}

feignClient传参(参数为对象类型)的一个坑的更多相关文章

  1. javascript之url转义escape()、encodeURI()和decodeURI(),ifram父子传参参数有中文时出现乱码

    ifram父子传参参数有中文时出现乱码,可先在父级页面用encodeURI转义,在到子页面用进行decodeURI()解码 我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对 ...

  2. ajax传参data里面的键是一个变量的解决方法

    直接用这种方式来传参,比如bean中有字段 username password,则是 data[username] = "用户名"; data[password] = " ...

  3. 使用springmvc从页面中获取数据,然后根据获得的参数信息进行修改,如果修改的数据中含有不是基本数据类型的参数。比如传的参数中有Date类型的数据时,需要我们进行参数类型转换。

    1.1 需求 在商品修改页面可以修改商品的生产日期,并且根据业务需求自定义日期格式. 1.2 需求分析 由于日期数据有很多格式,所以springmvc没办法把字符串转换成日期类型.所以需要自定义参数绑 ...

  4. Asp.net MVC中文件上传的参数转对象的方法

    参照博友的.NET WebApi上传文件接口(带其他参数)实现文件上传并带参数,当需要多个参数时,不想每次都通过HttpContext.Request.Params去取值,就针对HttpRequest ...

  5. 微信小程序跳转传参参数丢失?

    垂死病中惊坐起,笑问 Bug 何处来?! 1.先是大写字母作祟 前两天发布了「柒留言」v2.0.0 新版本,结果...你懂的嘛,没有 Bug 的程序不是好程序,写不出 Bug 的程序员不是好程序员. ...

  6. [UE4]创建多把枪,使用Class,参数的对象类型

    先来说说函数输入参数的区别: 1.Object Reference 2.Class Reference 会出现可以让你选择一个类 3.Soft Object Reference 4.Soft Clas ...

  7. C#,启动exe程序并传参(参数间带&符号)方法

    入参格式例如:C:\\Users\\Administrator\\Desktop\\测试\\测试\\bin\\Debug\\测试.exe type=1^&card_no=123 public ...

  8. JS基础之传参(值传递、对象传递)

    一.概念 我们需了解什么是按值传递(call by value),什么是按引用传递(call by reference).在计算机科学里,这个部分叫求值策略(Evaluation Strategy). ...

  9. Java String引起的常量池、String类型传参、“==”、“equals”、“hashCode”问题 细节分析

    在学习javase的过程中,总是会遇到关于String的各种细节问题,而这些问题往往会出现在Java攻城狮面试中,今天想写一篇随笔,简单记录下我的一些想法.话不多说,直接进入正题. 1.String常 ...

随机推荐

  1. URL的‘#’号

    转载自:传送门 去年9月,twitter改版. 一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为 http://twitter.com/username 改 ...

  2. 解决bug:sprongboot2整合shiro,swagger2页面样式加载不出来问题

    问题如题: 解决思路,把shiro拦截去掉之后发现swagger-ui.html页面接在的资源如下: 因此可以推断拦截器拦截了 "/swagger-resources" " ...

  3. Visual Studio 插件ReSharper:代码生成工具

    下载地址:http://www.jetbrains.com/resharper/download/download-thanks.html?code=RSU&platform=windows ...

  4. MS DOS 常用命令整理

    最近在开发用到一些dos下的一些指令,还有bat文件,特别是bat的便捷性让我在生活和开发过程中好好使用. dos指令: java com.pdcss.util.JacobService > D ...

  5. Django学习记录--~Biubiubiu

    Day One Django常用命令 1.创建Django网站框架 django-admin startproject mysite # mysite为定义的项目文件夹名称 2.超级用户创建 py m ...

  6. oooooooooooooooo

    安装后打开mysqld配置项加入skip-grant-tables可以无密码登录,登录进去后修改密码修改成功删除skip-grant-tables mysql> select user, plu ...

  7. JS中对象数据类型的基本结构和操作

    Object类型 ECMAScript中的队形其实就是一组数据和功能的集合.对象可以通过执行new操作符后跟要创建的对象类型的名称来创建.而创建Object类型的示例并为其添加属性和(或)方法,就可以 ...

  8. Spring STS 开发IDE下载安装

    https://spring.io/tools https://spring.io/tools3/sts/all/ Spring STS,全称是SpringSource Tool Suite ,是由s ...

  9. 【LeetCode】拓扑排序 topological-sort(共5题)

    [207]Course Schedule [210]Course Schedule II [269]Alien Dictionary [329]Longest Increasing Path in a ...

  10. ubuntu在线搭建ftp服务器

    转载:https://www.linuxidc.com/Linux/2016-12/138563.htm 在Linux中ftp服务器的全名叫 vsftpd,我们需要利用相关命令来开启安装ftp服务器, ...