【问题标题】:How to decode special characters in an NSURL in Swift?如何在 Swift 中解码 NSURL 中的特殊字符?
【发布时间】:2016-01-19 17:54:57
【问题描述】:

我有一个字符串:<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对象的
  • @ZoffDino let urlRequestString = "?fmt=json&api_key=" + let apiRequestURL = NSURL(fileURLWithPath: urlRequestString)
  • 您是在尝试加载文件,还是与 Web 服务器通信?
  • 与网络服务器通信。服务器将返回一个 JSON 块。

标签: swift decode nsurl nsurlsession


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2020-05-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    相关资源
    最近更新 更多