Я делаю запрос 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, поскольку сторона сервера ожидает значения параметров фильтра в виде пар ключ-значение.
Есть ли способ, которым я могу достичь этого?