如何在Swift中解码NSURL中的特殊字符?

时间:2015-10-20 21:47:20

标签: swift decode nsurl nsurlsession

我有一个字符串:<api address>/<parameters>%3Ffmt=json
当我从字符串创建NSURL对象时,URL为:?

但是,当我使用此URL发送请求时(使用NSURLSession),它会被拒绝访问,因为API需要%3F并且不接受?。如何解码URL以使let urlRequestString = "<api url>?fmt=json&api_key=" + <key> let apiRequestURL = NSURL(fileURLWithPath: urlRequestString)返回,以便API接受请求?

更新

NSURL构建

{{1}}

1 个答案:

答案 0 :(得分:0)

您使用了错误的初始化程序,这会导致虚假结果。 NSURL(fileURLWithPath: urlRequestString)用于创建file://个网址。它将您的URL转换为适合文件系统的格式。它仅供文件使用,因此您不应在此处使用它。

如果您将初始化程序更改为NSURL(string: urlRequestString),那么您的网址应该没问题。