如何在REST请求中传递同键不同值的多个参数?(soapUI场景)
解决soapUI中REST请求传递同键多值参数的问题
我之前也踩过这个坑!soapUI的参数编辑器确实会阻止你添加同名参数,弹出"property name exists!"的报错,但其实有几个简单的办法能绕过去,完美实现你要的多值$select[]参数传递~
方法1:直接编辑请求URL(最快捷)
不用在参数面板里费劲添加,直接在请求的地址栏里手动拼接所有需要的$select[]参数就行,就像你给出的示例那样:
localhost:3030/products?$select[]=Duracell - AA Batteries (8-Pack)&$select[]=description
如果参数里包含空格、括号这类特殊字符,soapUI会自动帮你转义,也可以手动转义确保请求正常。
方法2:使用请求的「Raw」标签页(适合复杂场景)
切换到请求的Raw标签,直接按照HTTP请求的完整格式编写Query String部分:
GET /products?$select[]=Duracell - AA Batteries (8-Pack)&$select[]=description HTTP/1.1 Host: localhost:3030
这种方式完全绕过了soapUI的参数校验机制,想加多少个同名参数都没问题,自由度拉满。
方法3:修改soapUI配置(永久解决重复参数限制)
如果你经常需要传递同键多值的参数,可以修改soapUI的配置文件来彻底关闭这个限制:
- 找到soapUI安装目录下的
bin/soapui-settings.xml文件 - 搜索
<setting id="HttpParams.AllowDuplicateParams">false</setting>这一行 - 将
false修改为true,保存文件后重启soapUI - 之后在参数面板里就能重复添加同名的
$select[]参数了
小提醒
不管用哪种方法,记得确认你的后端服务支持这种key[]格式的数组参数传递哦(大部分REST框架都是支持的)。
内容的提问来源于stack exchange,提问作者Shailja Pandey
相关产品推荐
相关产品推荐

