意外地发现零,而解包一个可选值 – 使用ALAMOFIRE

我正在尝试在JSON中使用Alamofire进行GET。 当我使用一个URL – 它工作正常,当我使用另一个我得到一个错误,展开一个可选的值。 我似乎无法跟踪错误来自哪里。 我使用了ViewDidLoad中的代码来跟踪错误。 我不知道它的收件人,他们想要某种授权。 但我知道它不是println的cos当我//他们 – 它仍然出现一个错误,inheritance人的代码:

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) } 

它工作正常,返回为零的错误。

任何帮助将是伟大的,因为它驱使我疯了。

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

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

它将返回零。 您需要格式化您的url以适合提出请求。 这是你的一个解决scheme。

 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)