我正在尝试使用 Alamofire 获取 JSON 格式的数据。
当我使用一个 URL 时,它工作正常,当我使用另一个 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)
}
它工作正常并返回 nil 错误。
任何帮助都会很棒,因为它让我发疯。
原因很简单:您的 URL 包含特殊字符。所以,如果你这样做
let url = NSURL(string:yourURLString) //returns nil
它将返回零。您需要设置 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)