调用 java 脚本代码,返回用于分隔返回对象的键和值的 ':"的 ASCII 编码



我使用空手道发出 api 请求,其中一个 api 请求参数采用过滤条件(这是一个 java 脚本对象(。

我正在使用文字符号来创建 java 脚本对象,如下所示。此代码位于单独的筛选器.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 抛出错误的请求错误。我查看了请求网址,在那里我可以看到我为对象键分配值的 js 文件中的":"被替换为 %3A,我相信这是":"的 ASCII 编码。(参数及其值如下(

?filter=%7B%22val1%22%3A%5B%5D%

2C%22val2%22%3A%5B%5D

我想要的是来自.js调用的":",因为服务器端期望过滤器参数值作为键值对。

有没有办法实现这一点?

如果您的服务器无法解码编码:则为错误:https://www.w3schools.com/tags/ref_urlencode.asp

如果您确实需要这个 - 解决方法是使用 url 关键字并手动构建它,pathparam始终编码。

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

最新更新