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

Karate框架中构造含日期范围的GET请求参数方法咨询

解决Karate框架中构造filters[...]格式GET查询参数的问题

直接把filters[start_date]作为JSON对象的键是错误写法,Karate不会识别这种嵌套结构,只会将其当作普通字符串键,自然生成不了预期的URL格式。下面是两种可行的正确构造方式:

方式一:使用嵌套对象自动序列化

利用Karate的内置序列化能力,将filters定义为嵌套对象,同时启用查询参数编码配置,Karate会自动把嵌套结构转为filters[xxx]的格式:

* configure encodeQueryParams = true
* def query = {
    id: 60,
    filters: {
        start_date: 'Fri Nov 18 2022 10:14:59 GMT-0300',
        end_date: 'Sat Nov 19 2022 23:59:59 GMT-0300'
    }
}
* url 'https://urlbase/index'
* param query = query
* method get

注意:这里不需要手动对空格做%20编码,Karate会自动处理URL编码。如果已经手动编码了值,记得把encodeQueryParams设为false,避免二次编码。

方式二:逐个指定带括号的参数键名

如果需要更直接地控制参数键名,可以通过param指令逐个定义,把带括号的键名用引号包裹:

* url 'https://urlbase/index'
* param id = 60
* param 'filters[start_date]' = 'Fri Nov 18 2022 10:14:59 GMT-0300'
* param 'filters[end_date]' = 'Sat Nov 19 2022 23:59:59 GMT-0300'
* method get

这种方式会完全保留你指定的键名格式,同样Karate会自动处理值的URL编码。

内容的提问来源于stack exchange,提问作者apark

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:55:15