Karate 调用java脚本代码,返回';的ASCII编码:';分离返回对象的键和值

Karate 调用java脚本代码,返回';的ASCII编码:';分离返回对象的键和值,karate,Karate,我使用karate发出一个api请求,其中一个api请求参数接受一个过滤条件(这是一个java脚本对象) 我使用文字符号创建java脚本对象,如下所示。此代码位于单独的filter.js文件中 function() { var params = { val1:[], val2:[] }; return params; } 现在我在空手道场景中调用上面的.js文件,如下所示: Scenario: Test Given path 'filtertest/' * param fi

我使用karate发出一个api请求,其中一个api请求参数接受一个过滤条件(这是一个java脚本对象)

我使用文字符号创建java脚本对象,如下所示。此代码位于单独的filter.js文件中

function() {

var params = {
    val1:[],
    val2:[]
};
return params;
}

现在我在空手道场景中调用上面的.js文件,如下所示:

 Scenario: Test
Given path 'filtertest/'
* param filter = call read('classpath:feature/common/filter/filter.js')
When method get
运行上述命令,当我检查日志时,api抛出错误的请求错误。我查看了请求url,在那里我可以看到js文件中为对象键赋值的“:”被替换为%3A,我认为这是“:”的ASCII编码。(参数及其值如下)

?过滤器=%7B%22val1%22%3A%5B%5D%2C%22val2%22%3A%5B%5D

我想要的是“:”来自.js调用,因为服务器端希望筛选器参数值作为键值对


有什么方法可以做到这一点吗?

如果您的服务器无法解码编码的
这是一个错误:

如果您真的需要,解决方法是使用
url
关键字并手动构建它,
path
param
将始终进行编码


如果您的服务器无法解码编码的
则是一个错误:

如果您真的需要,解决方法是使用
url
关键字并手动构建它,
path
param
将始终进行编码

Given url baseUrl + '/filtertest?filter=foo:bar'