【发布时间】:2015-07-21 13:12:01
【问题描述】:
奇怪的是在Xcode控制台看到的,URL参数的输出和我用Alamofire输入的不一样,
- 参数的顺序改变了
- 和额外的数字“25”添加到参数“key”中,
请看以下原代码:
let weatherURL="http://open.weather.com.cn/data/"
let params=["areaid":"\(areaid)","type":"forecast_v","date":"\(time)","appid":"1eb583","key":"\(URLEncodeKey)"]
Alamofire.request(.GET, weatherURL, parameters: params)
.responseJSON { (request, response, json, error) in
if((error) != nil){
println(request)
println("Error:\(error)")
}else{
println(request)
println(json)
}
}
控制台中URL的输出:
key:2v7eK8AlzynX%2BuLBgw7DU74f8S0%3D
NSMutableURLRequest: 0x7fe3f14a1bf0 { URL: http://open.weather.com.cn/data/?appid=1eb583&areaid=101020900&date=201507211626&key=2v7eK8AlzynX%252BuLBgw7DU74f8S0%253D&type=forecast_v }
这两个问题导致的错误:
Error Domain=NSCocoaErrorDomain Code=3840 "无法完成操作。(Cocoa 错误 3840。)"(字符 0 周围的值无效。)
因此我无法从 API 获取数据。但是当手动从以上两个问题中纠正URL时,意味着URL:
- 在常量“params”中更改参数顺序,
- 并删除多余的“25”。
然后它起作用了,我可以在网络浏览器中看到来自 API 的响应数据。
那么,请问我在代码中忽略了哪些问题?
谢谢!
【问题讨论】: