Karate DSL参数空格被替换为+致请求失败,如何改为%20?
问题:Karate DSL中如何将URL参数空格编码为%20而非+
我编写了如下Karate DSL代码:
Scenario: Get Token Given url 'https://localhost/api/accessToken' And param scope = 'collections payments'
请求日志显示:
1 > POST https://localhost/api/accessToken?scope=collections+payments
该POST请求执行失败,需要将参数中的空格编码为%20,使请求地址变为:https://localhost/api/accessToken?scope=collections%20payments,请问该如何实现?
解决方案
方法1:手动替换空格为%20
直接在参数值里用%20替代空格,跳过Karate的自动编码逻辑:
Scenario: Get Token Given url 'https://localhost/api/accessToken' And param scope = 'collections%20payments'
方法2:使用Karate内置编码函数
调用karate.encode()函数对参数值做标准URL编码,该函数会自动将空格转换为%20:
Scenario: Get Token Given url 'https://localhost/api/accessToken' And param scope = karate.encode('collections payments')
方法3:手动拼接完整URL
如果需要完全控制URL结构,可以直接拼接包含编码后参数的完整URL,不使用param关键字:
Scenario: Get Token Given url 'https://localhost/api/accessToken?scope=collections%20payments'
内容的提问来源于stack exchange,提问作者Jesus Ovalle
相关产品推荐
相关产品推荐

