我正在自己的IDE中为SmartThings(www.smartthings.com)编写应用程序。我这里有一个输入字段,应该是文本输入。我要求出发地址:
section("Departing From:"){
input "departFrom", "text", title: "Address?"
}
当放入Monterey, CA
的值时,该值会神奇地变为具有[Monterey, CA]
我想将此值传递给httpGET
语句,但我需要URLencode
首先省略空格等。由于JSON数组,我尝试URLencoder
但没有成功
我试过join(",")
没有运气,因为它会为值添加双引号。
如何从此变量中获取干净的Monterey%2C%20CA
网址编码值?
**请记住有人可以将数字,空格和逗号的任意组合输入到此输入中作为地址。我发送给它的mapquest API可以处理所有这些事情,只要它们没有特殊字符并且空格是URL编码的。
答案 0 :(得分:0)
也许试试:
def l = ['Monterey', 'CA']
assert URLEncoder.encode(l.join(', ')).replaceAll('\\+','%20') == 'Monterey%2C%20CA'
在更换+
符号时,请参阅here
答案 1 :(得分:-1)
有不同类型的URL编码,但在这种情况下有两种:一种将空格转换为%20,另一种将空格转换为+。
首先,您使用UriUtils:
def yourEncodedString = UriUtils.encodeUri(yourString.toString(), "UTF-8")
对于第二个,您使用UrlEncoder:
def yourEncodedString = URLEncoder.encode(yourString.toString(), "UTF-8")
或者(我认为)你可以使用URLEncoder和UTF-16来获得你想要的东西。
我从未和UriUtils度过愉快的时光,所以希望UrlEncoder能为您效劳。