URI-кодирование строки

Мне нужно отправить запрос GET. Один из параметров содержит символы запроса URL (например, ?, &, а также =). Как мне URI-кодировать это в KRL перед отправкой запроса?

Вот псевдокодированная идея:

params = "key=value&key=value";
encoded_params = params.urlencode();
request = datasource:service("?data=#{encoded_params}");

2 ответа

Решение

Смотрите также http://docs.kynetx.com/docs/URI

escaped = uri:escape("a b c d"); // "a%20b%20c%20d"
original = uri:unescape(escaped); // "a b c d"

Вы можете передать строку или структуру при вызове источника данных. Когда вы используете хеш, значения хеша автоматически кодируются URL-адресом платформой.

Ваш код выше будет написан так:

rparams = {
  "key1": "value1",
  "key2": "value2"
};
request = datasource:service(rparams);

TaDa! Магия.

Обратите внимание, что я использовал строковые литералы в объявлении хеша, но это могут быть любые выражения, и значения будут переданы в качестве аргументов в запросе источника данных.

Другие вопросы по тегам