feign 发送请求时,传多个参数时的写法
第一:传参方式写法,当参数个数大于2个时,需要用@RequestParam
@PostMapping(value = "/configReader/configValue.do",headers = {"Accept=application/json","Content-Type=application/x-www-form-urlencoded"})
//正确的写法
String getMaxCount(@RequestParam("projectName") String projectName, @RequestParam("wordName") String wordName);
//错误的传参方式,会报错
String getMaxCount(String projectName, String wordName);
报错代码为:nested exception is java.lang.IllegalStateException: Method has too many Body parameters: public abstract java.lang.String
第二,@RequestParam 注解的正确用法(很重要!!)
@PostMapping(value = "/configReader/configValue.do",headers = {"Accept=application/json","Content-Type=application/x-www-form-urlencoded"})
//正确的写法
String getMaxCount(@RequestParam("projectName") String projectName, @RequestParam("wordName") String wordName);
好多人没弄明白到底是把“projectName ”里面的参数赋值给projectName,还是把外面的projectname赋值给“projectName”,因为都写一样的,就区分不出来了。 (1)@RequestParam 作为数据发送方 参数配置时,实验如下:
实验一:
数据发送请求方:
@PostMapping(value = "/configReader/configValue.do",headers = {"Accept=application/json","Content-Type=application/x-www-form-urlencoded"})
String getMaxCount(@RequestParam("project") String projectName, @RequestParam("wordName") String wordName);
数据接收方:
String getConfigValue(@RequestParam("projectName") String projectName, @RequestParam("wordName") String wordName)
结果:请求失败,因为
@RequestParam("project") 与@RequestParam("projectName") 不一致
实验二:
数据发送请求方:
@PostMapping(value = "/configReader/configValue.do",headers = {"Accept=application/json","Content-Type=application/x-www-form-urlencoded"})
String getMaxCount(@RequestParam("projectName") String project, @RequestParam("wordName") String wordName);
数据接收方:
String getConfigValue(@RequestParam("projectName") String projectName, @RequestParam("wordName") String wordName)
结果:请求成功
最终结论:@RequestParam("projectName") 是取的别名,String project 是用来接受值的,并将值赋值给别名@RequestParam("projectName") ,然后发送给外部,外部接收数据时,只认别名projectName,一样时才可以接收到数据。
(2)@RequestParam 作为数据接收方,参数配置时,参考
https://www.cnblogs.com/silentdoer/archive/2017/08/31/7459395.html
此时@RequestParam(name="userName", required = false) String[] userNames) username是浏览器请求的参数,userNames 是最终接收的变量
feign 发送请求时,传多个参数时的写法的更多相关文章
- 【Java学习笔记之二十七】Java8中传多个参数时的方法
java中传参数时,在类型后面跟"..."的使用: public static void main(String[] args){ testStringA ...
- requestS模块发送请求的时候怎么传递参数
首先要确定接口的传递参数是什么类型的,如果接口是查询,使用get请求方法,传递参数的时候使用params, 如果接口需要的json型参数的话,使用json,如果是上传文件的话,通过files参数在传递 ...
- action间传多个参数时注意问题
通常我们action之间传参可以有多种形式,举例说明:示例1: <result name="test" type="redirect-action"> ...
- HttpClient 发送请求和参数
发送请求 没有参数 private static void getData() { String timeStamp = String.valueOf(System.currentTimeMillis ...
- java后台向路径发送请求获得相应参数
从java后台向一路径发送请求,获得响应的参数,put get post ,还有一个返回URL的工具类,方便代码灵活修改 import java.io.BufferedReader; import j ...
- Feign发送Get请求时,采用POJO对象传递参数的最终解决方案 Request method 'POST' not supported (附带其余好几个坑)
yml: feign: httpclient: enabled: true properties: #feign feign.httpclient.enabled=true <!-- https ...
- 发送请求时携带了参数,但是浏览器network没有显示的排错思路
发送请求时携带了参数,但是浏览器network没有显示的排错思路 不知道大家有没有遇到这样子的情况就是发送请求的时候明明携带了参数,但是浏览器的network中就是没有!请看下图和代码! 我发送请求用 ...
- vue 使用 axios 时 post 请求方法传参无法发送至后台
axios 时 post 请求方法传参无法发送至后台报错如下 Response to preflight request doesn't pass access control check: No ' ...
- C# 发送Http请求,传文件和其他参数
/// <summary> /// httpWebRequest post by dic /// </summary> /// <param name="url ...
随机推荐
- idea -- spring datasource配置文件不显示datasource.properties文件对应属性的值,错误提示cannot resolve property key
原文:https://yq.aliyun.com/articles/657711 点击 文件 顶部的 蓝色 MVC application context,修改为Local File
- 清除表单input输入框内数据
清除表单input输入框内数据 1. $(':input','#addVoucherType') //'#addVoucherType'表单id .not(':button') .val('') .r ...
- Python基本语法_控制流语句_if/while/for
目录 目录 前言 软件环境 If 语句 While循环 break continue for 循环 遍历String 遍历Tuple 遍历List 遍历Dictionary 最后 前言 控制流语句用于 ...
- sql server 2014安装后用sa登录问题
在使用的sql server的数据的情况下,安装数据过程,未指定使用sa的登录,只能使用windows的账户登录,那要怎么设置账户来使用sa账户登录账号呢? 首先先打开的是sql server man ...
- 深入理解Istio核心组件之Pilot
Istio作为当前服务网格(Service Mesh)领域的事实标准,流量治理(Traffic Management)是其最为基础也最为重要的功能.本文将结合源码对Istio流量治理的实现主体——组件 ...
- Vue --》this.$set()的神奇用法
作为一名开发者,我们都知道: data中数据,都是响应式.也就是说,如果操作data中的数据,视图会实时更新: 但在实际开发中,遇到过一个坑:若data中数据类型为对象,方法methods中改变对象的 ...
- python关键字以及含义,用法
Python常用的关键字 1.and , or and , or 为逻辑关系用语,Python具有短路逻辑,False and 返回 False 不执行后面的语句, True or 直接返回Tru ...
- 软件设计分为结构化设计(SD)
软件设计分为结构化设计(SD)与面向对象设计(OOD). 其中结构化设计SD是一种面向数据流的方法,它以SRS(软件需求规格说明书)和SA(结构化分析)阶段所产生的和数据字典等文档为基础,是一个自顶向 ...
- spring配置添加多个事务(转)
大多数项目只需要一个事务管理器.然而,有些项目为了提高效率.或者有多个完全不同又不相干的数据源,最好用多个事务管理器.机智的Spring的Transactional管理已经考虑到了这一点,首先分别定义 ...
- 如何将Numpy加速700倍?用 CuPy 呀
如何将Numpy加速700倍?用 CuPy 呀 作为 Python 语言的一个扩展程序库,Numpy 支持大量的维度数组与矩阵运算,为 Python 社区带来了很多帮助.借助于 Numpy,数据科学家 ...