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

标签 swift decode nsurl nsurlsession

我有一个字符串:<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/

相关文章:

ios - 如何更改 URL iOS 中的参数

ios - URLWithString : when string contains Arab chars 问题

objective-c - 当我尝试将它设置为 NSString 时,NSURL 被取消

ios - Xcode 8 升级后缩放不起作用

ios - 调试时查找所有布局约束问题

ios - 解析嵌套的 JSON SWIFT 4

java - 如何在 Java 中取消转义 HTML 字符实体?

json - 如何在 Flutter 中解码 Gzip Http 响应?

ios - 使用 Core Data 创建一个新的 iOS 项目,但我在 AppDelegate 中找不到 ManagedObjectModel 变量

scala - 使用 Scala 将 base64 解码为 ASCII