展开可选值时意外发现 nil - 使用 ALAMOFIRE

unexpectedly found nil while unwrapping an Optional value - Using ALAMOFIRE

我正尝试在 JSON 中将 Alamofire 用于 GET。 当我使用一个 URL - 它工作正常,当我使用另一个时,我在展开可选值时遇到错误。我似乎无法追踪错误的来源。我已将代码放在 ViewDidLoad 中以跟踪错误。我不知道它是否是收件人,他们想要某种授权。但我知道当我 // 它们时它不是 println 的 cos - 它仍然作为错误出现,代码如下:

request(.GET, "https://api.doingdata.net/sms/send?api_service_key='APIKey'&msg_senderid=Edify-FYI&msg_to=&msg_text={otp|Edify-FYI|3600|ETEN|4} &msg_clientref=abcdef123456&msg_dr=0&output=json")
        .validate()
        .responseJSON { (_, _, _, error) in
            println(error)
    }

但我使用:

request(.GET, "http://httpbin.org/")
            .validate()
            .responseJSON { (_, _, _, error) in
                println(error)
        }

它工作正常,returns 错误为零。

任何帮助都会很棒,因为它让我抓狂。

原因很简单:您的 URL 有特殊字符。所以,如果你这样做

let url = NSURL(string:yourURLString) //returns nil

它将 return 为零。您需要格式化 URL 以适合提出请求。这是您的一种解决方案。

var urlString = "https://api.doingdata.net/sms/send?api_service_key='APIKey'&msg_senderid=Edify-FYI&msg_to=&msg_text={otp|Edify-FYI|3600|ETEN|4} &msg_clientref=abcdef123456&msg_dr=0&output=json"
urlString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!
request(.GET, urlString, parameters: nil, encoding: .JSON)