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,否则会报错的 首先引入依赖
随机推荐
- win32使用openfilename浏览文件窗口示例
- apache服务器全局配置详解(全)
- Flask的图形化管理界面搭建框架Flask-Admin的使用教程
- 前端学习笔记style,currentStyle,getComputedStyle的用法与区别
- 详谈symfony window下的安装 安装时候出现的问题以及解决方法
- python查看FTP是否能连接成功的方法
- Python配置文件解析模块ConfigParser使用实例
- javascript匿名函数应用示例介绍
- java随机字符串生成示例
- Android绘制音乐播放器示波器
- C#递归实现回文判断算法
- java实现的导出Excel工具类实例
- Android 自定义通用的loadingview实现代码
- Android 基于Socket的聊天室实例
- Android实现Flip翻转动画效果
- 无线VoIP技术的现状简介
- Springboot Cucumber测试配置介绍详解
- python爬虫简单的添加代理进行访问的实现代码
- 将python文件打包成EXE应用程序的方法
- Linux 修改Python命令的方法示例