feign GET请求不支持对象传参的坑及解决
目录
- GET请求不支持对象传参
- 问题
- 解决方法
- feign发get请求遇到的坑
- 问题
- 原因分析
- 加上@RequestParam后问题解决
GET请求不支持对象传参
问题
@GetMapping("/getByParam") String hello(Student student) throws Exception;
如上,feign调用报错500。
解决方法
增加@SpringQueryMap
@GetMapping("/getByParam") String hello(@SpringQueryMap Student student) throws Exception;
feign发get请求遇到的坑
问题
@RequestMapping(value="/test",method = RquestMethod.GET) Result getA(String id);
如上,调用该方法报错请求方式post错误,请用get。
原因分析
feign将该get方法转为了post,导致出错。
这个问题的主要的原因就是Feign默认使用的连接工具实现类,发现只要你有对应的body体对象,就会强制把GET请求转换成POST请求。
Feign源码在解析含有@FeignClient注解的接口的时候,在创建代理对象的时候,代理对象在去解析含有@RequestParam注解的参数的时候,会将该参数增强到url上,而不是作为body传递。
加上@RequestParam后问题解决
修改后代码如下。
@RequestMapping(value="/test",method = RquestMethod.GET) Result getA(@RequestParam String id);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
详解spring cloud feign踩坑记录
1:多客户端时,feign接口抽取到公共jar中,此时,客户端的启动类上需要对该jar中feign所在的包进行扫描,要在spring和feign中同时注册,否则启动时会报:"Consider defining a bean of type '******Feign' in your configuration." @SpringBootApplication @EnableTransactionManagement @EnableDiscoveryClient @ComponentSc
-
SpringCloud中的Feign远程调用接口传参失败问题
目录 Feign远程调用接口传参失败 这是调用者 这是feign的client 这是被调者 Feign远程调用的注意点 定义的做远程调用的api接口 service微服务中的Controller的参数绑定 Feign远程调用接口传参失败 我在做一个微服务调用的时候出现了被调接口传参失败问题 Feign是通过http协议调用服务的,后来发现是因为Gep和Maping不一致,还有使用feign时要记得给实体类加无参构造注解 同时这些注解都尽量一致,不然微服务调bug很麻烦. 这是调用者 这是feig
-
解决SpringCloud Feign传对象参数调用失败的问题
SpringCloud Feign传对象参数调用失败 不支持GET请求方式 使用Apache HttpClient替换Feign原生httpclient @RequestBody接收json参数 bootstrap-local.yml feign: httpclient: enabled: true pom.xml <!-- 使用Apache HttpClient替换Feign原生httpclient --> <dependency> <groupId>com.netf
-
feign GET请求不支持对象传参的坑及解决
目录 GET请求不支持对象传参 问题 解决方法 feign发get请求遇到的坑 问题 原因分析 加上@RequestParam后问题解决 GET请求不支持对象传参 问题 @GetMapping("/getByParam") String hello(Student student) throws Exception; 如上,feign调用报错500. 解决方法 增加@SpringQueryMap @GetMapping("/getByParam") String h
-
SpringCloud:feign对象传参和普通传参及遇到的坑解决
目录 feign对象传参和普通传参及遇到的坑 对象传参 普通传参 遇到的坑-1 遇到的坑-2 feign传递复杂参数对象需要注意的地方 传递复杂参数对象需要用Post 在传递的过程中 feign对象传参和普通传参及遇到的坑 对象传参 使用@RequestBody来指定传参对象 @RequestMapping(value = "/v2/matterCode/genCode", method = RequestMethod.POST) ResultResponse<Strin
-
Vue + Axios 请求接口方法与传参方式详解
目录 一.Get请求: 二.Post请求: 三.拓展补充 使用Vue的脚手架搭建的前端项目,通常都使用Axios封装的接口请求,项目中引入的方式不做多介绍,本文主要介绍接口调用与不同形式的传参方法. 一.Get请求: Get请求比较简单,通常就是将参数拼接到url中 用? &连接或者用下面这种方式: this.axios.get(this.getWxQyUserInfoUrl, { params: { agentid: this.doLoginParams.agentid, code: this
-
vue中使用$http.post请求传参的错误及解决
目录 使用$http.post请求传参的错误 vue post请求之坑 解决方法 使用$http.post请求传参的错误 在使用$http请求后台,照常我们在后端 使用注解@PostMapper或者 @RequestMapping(value = “XXXX”,method = RequestMethod.POST)接受请求 handleAdd(node) { this.$http.post("/item/category/addCategory",{ node:node }) .th
-
mybatis group by substr函数传参报错的解决
目录 mybatis group by substr传参报错 报异常 原因 使用group by 分组查询返回为null 解决方法 mybatis group by substr传参报错 报异常 ### Cause: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式 SELECT SUBSTR( region_code, 1,#{ queryMap.groupCodeLength, jdbcType = INTEGE
-
Vue关于对象直接赋值的坑及解决
目录 Vue对象直接赋值的坑 Vue对象的赋值Object.assign({}, row) Vue对象直接赋值的坑 受JavaScript的限制,Vue不能监听到对象属性的添加或删除.如果这样做了,你会发现添加或删除的属性不是响应式的,即无法及时更新视图. 如果我们需要将a对象赋值给b对象时,要么把b对象的所有属性都在a对象中定义一下,要么 使用this.$set(this.object,key,value)将b对象中有a对象中没有的属性set进去,或者使用Object.assign(this.
-
javascript写的异步加载js文件函数(支持数组传参)
自己用的加载js文件,支持多文件,不兼容ie 复制代码 代码如下: /** * 加载js文件 * @param {string || array} url js路径 * @param {Function} fn 加载完成后回调 * @return {object} game对象 * @example * getScript("url.js",fn) * getScript(["url-1.js","url-2.js
-
详解SpringMVC——接收请求参数和页面传参
spring接收请求参数: 1,使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(HttpServletRequest request){ String name = request.getParameter("name") String pass = request.getParameter("pass") } 2,Spring会自动将表单参数注入到方
-
Feign调用中的两种Header传参方式小结
目录 Feign调用中的两种Header传参方式 在请求拦截器中统一配置 通过@RequestHeader注解 调用feign接口时,如何往header中添加参数 总结 Feign调用中的两种Header传参方式 在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端. 我们可以使用JDK原生的URLConnection.Apache的Http Client.Netty的异步HTTP Client, Spri
-
基于feign传参MultipartFile问题解决
目录 feign传参MultipartFile问题 首先引入依赖 新建feign的配置 在feign接口中配置 Feign传输MultipartFile的一些问题 File转MultipartFile feign传参MultipartFile问题 首先,feign服务之间的调用,传参默认的格式为:ContentType=application/x-www-form-urlencoded 以表单的形式传参的,而文件流的传参,需要form-data的ContentType,否则会报错的 首先引入依赖
随机推荐
- PHP生成条形码大揭秘
- Redis构建分布式锁
- Extjs4 GridPanel的主要配置参数详细介绍
- 局域网代理服务器组建方案 教程
- Linux环境下nodejs的安装图文教程
- OpenStack Tempest的正确的打开方式
- 理解Javascript_09_Function与Object
- JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
- nodejs npm包管理的配置方法及常用命令介绍
- 原生js实现返回顶部缓冲效果
- PHP代码实现表单数据验证类
- php抓取页面的几种方法详解
- PHP去除数组中重复的元素并按键名排序函数
- JavaScript 动态将数字金额转化为中文大写金额
- rudy 方法 分析
- jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
- jquery 利用show和hidden实现级联菜单示例代码
- 分别用ToolBar和自定义导航栏实现沉浸式状态栏
- java,Android:在eclipse中的快捷键(经典收藏)
- PHP之密码加密的几种方式