Вызов кода сценария java, возвращающего кодировку ASCII для разделительного ключа ':' и значения возвращаемого объекта - PullRequest
1 голос
/ 26 марта 2019

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

Есть ли способ, которым я могу достичь этого?

1 Ответ

0 голосов
/ 26 марта 2019

Если ваш сервер не может декодировать закодированный :, это ошибка: https://www.w3schools.com/tags/ref_urlencode.asp

Если вам действительно это нужно - обходной путь должен использовать ключевое слово url и создать его вручную, path и param будет всегда кодировать.

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