我有一个字符串:<api address>/<parameters>?fmt=json
当我从字符串创建一个 NSURL 对象时,URL 是:<api address>/<parameters>%3Ffmt=json
但是,当我使用此 URL(使用 NSURLSession)发送请求时,它被拒绝访问,因为 API 需要 ?
并且不接受 %3F
.如何解码 URL 以获得 ?
返回以便 API 将接受请求?
更新
NSURL 构造
let urlRequestString = "<api url>?fmt=json&api_key=" + <key>
let apiRequestURL = NSURL(fileURLWithPath: urlRequestString)
最佳答案
您使用了错误的初始值设定项,这导致了错误的结果。 NSURL(fileURLWithPath: urlRequestString)
用于创建 file://
URL。它将您的 URL 转换为适合文件系统的格式。它专为文件使用而设计,因此您不应在此处使用它。
如果您将初始值设定项更改为 NSURL(string: urlRequestString)
那么您的 URL 应该没问题。
关于swift - 如何在 Swift 中解码 NSURL 中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247390/