feignClient传参(参数为对象类型)的一个坑
客户端
@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传参(参数为对象类型)的一个坑的更多相关文章
- javascript之url转义escape()、encodeURI()和decodeURI(),ifram父子传参参数有中文时出现乱码
ifram父子传参参数有中文时出现乱码,可先在父级页面用encodeURI转义,在到子页面用进行decodeURI()解码 我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对 ...
- ajax传参data里面的键是一个变量的解决方法
直接用这种方式来传参,比如bean中有字段 username password,则是 data[username] = "用户名"; data[password] = " ...
- 使用springmvc从页面中获取数据,然后根据获得的参数信息进行修改,如果修改的数据中含有不是基本数据类型的参数。比如传的参数中有Date类型的数据时,需要我们进行参数类型转换。
1.1 需求 在商品修改页面可以修改商品的生产日期,并且根据业务需求自定义日期格式. 1.2 需求分析 由于日期数据有很多格式,所以springmvc没办法把字符串转换成日期类型.所以需要自定义参数绑 ...
- Asp.net MVC中文件上传的参数转对象的方法
参照博友的.NET WebApi上传文件接口(带其他参数)实现文件上传并带参数,当需要多个参数时,不想每次都通过HttpContext.Request.Params去取值,就针对HttpRequest ...
- 微信小程序跳转传参参数丢失?
垂死病中惊坐起,笑问 Bug 何处来?! 1.先是大写字母作祟 前两天发布了「柒留言」v2.0.0 新版本,结果...你懂的嘛,没有 Bug 的程序不是好程序,写不出 Bug 的程序员不是好程序员. ...
- [UE4]创建多把枪,使用Class,参数的对象类型
先来说说函数输入参数的区别: 1.Object Reference 2.Class Reference 会出现可以让你选择一个类 3.Soft Object Reference 4.Soft Clas ...
- C#,启动exe程序并传参(参数间带&符号)方法
入参格式例如:C:\\Users\\Administrator\\Desktop\\测试\\测试\\bin\\Debug\\测试.exe type=1^&card_no=123 public ...
- JS基础之传参(值传递、对象传递)
一.概念 我们需了解什么是按值传递(call by value),什么是按引用传递(call by reference).在计算机科学里,这个部分叫求值策略(Evaluation Strategy). ...
- Java String引起的常量池、String类型传参、“==”、“equals”、“hashCode”问题 细节分析
在学习javase的过程中,总是会遇到关于String的各种细节问题,而这些问题往往会出现在Java攻城狮面试中,今天想写一篇随笔,简单记录下我的一些想法.话不多说,直接进入正题. 1.String常 ...
随机推荐
- Linux命令行基础操作
目录 1.打开终端命令行 2.常用快捷键 2.1 tab键 2.2 Ctrl+c组合键 2.3 Ctrl+d组合键 2.4Ctrl+Shift+c组合键和Ctrl+Shift+v组合键 2.5图形界面 ...
- Runnable、Callable、Future、FutureTask的区别
转自:https://blog.csdn.net/jdsjlzx/article/details/52912701 FutureTask既是Future.Runnable,又是包装了Callable( ...
- Tensorflow机器学习入门——MINIST数据集识别
参考网站:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html #自动下载并加载数据 from tensorflow.example ...
- 2019 Multi-University Training Contest 1 - 1004 - Vacation - 二分 - 思维
http://acm.hdu.edu.cn/showproblem.php?pid=6581 一开始想了好几个假算法.但是启发了一下潘哥,假如时间知道的话就可以从头开始确定各个车的位置.那么直接 \( ...
- POJ 3764 The xor-longest Path (01字典树)
<题目链接> 题目大意: 给定一颗$n$个节点$(n\leq10^5)$,有边权的树,其边权$(0\leq w < 2^{31})$.让你求出这棵树上任意两个节点之间的异或最大值. ...
- bat ini文件读取
借助<bat 读取 ini 文件>文章中的readini.bat实现(请自行前往下载),可满足多个section下Key值查询. ini文件示例 [Server] ServerName = ...
- 【JAVA】eclipse-使用入门及常用快捷键
目录 下载与安装 HelloWorld 新建项目 视图与视窗 快捷键 个性化设置 导入项目 jar包 下载与安装 下载 网址:官网下载 注意: 下载javaee版 注意与本机的java环境相匹配,32 ...
- robotframework API 源码阅读笔记----robot.utils.asserts
http://robot-framework.readthedocs.io/en/latest/autodoc/robot.utils.html#robot.utils.asserts.assert_ ...
- 七、WebApi跨域操作
情景:测试后返回"no response from server"? 请求响应: js调试控制台: 一.搜索安装 Microsoft.AspNet.WebApi.Cors 二.添加 ...
- js代码检测设备问题:为什么在移动端检测设备的时候会出现pc的页面
为了在手机上也能正常显示页面,所以为之前写的页面又重写了一遍,专门用来在移动端显示,用js代码检测设备,如果是pc就显示pc的页面,如果是移动就显示移动的页面,但遇到一个问题就是在移动端打开会有一个延 ...