我需要发送一个GET请求。其中一个参数中包含URL查询字符(例如:?
、&
、=
)。在发送请求之前,我如何在KRL中进行uri编码?
这是伪编码的思想:
params = "key=value&key=value";
encoded_params = params.urlencode();
request = datasource:service("?data=#{encoded_params}");
调用数据源时可以传递字符串或结构体。当您使用散列时,该散列值由平台自动进行URL编码。
上面的代码应该这样写:
rparams = {
"key1": "value1",
"key2": "value2"
};
request = datasource:service(rparams);
大作。魔法。
请注意,我在散列声明中使用了字符串字面值,但这些字面值可以是任何表达式,并且这些值将作为数据源请求中的参数传递。
参见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"