You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:55:17