我尝试使用以下代码调用自定义网址:
let myurl = "https://myserver.com/call?a|b|c"
let converted = URL(string: myurl)
print(converted)
但我在converted
中获得的结果只是"nil"
。
我很确定这是因为与URL()
类相关的错误字符集。
经过一些研究,我到目前为止所得到的是这个过时的Swift代码:
var myurl = "https://myserver.com/call?a|b|c"
var newurl = myurl.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())
print(newurl)
但它似乎没有这样做。
如何使用(在我的情况下)Swift 4来避免“nil”结果?
答案 0 :(得分:0)
自己找到解决方案:
let myurl = "https://myserver.com/call?a|b|c"
let converted = URL(string: myurl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)
print(converted!)
新功能称为addingPercentEncoding
&我必须使用urlQueryAllowed
属性来调用它。
urlQueryAllowed 字符集会将这样的字符添加到网址编码:“!*'();:@&=+$,/?%#[]|
”
Volià!