我正在尝试使用Alamofire快速获取Get请求。当我在使用iOS 10的模拟器或设备中运行时,它可以正常工作。当我在iOS 9.x或之前的设备上运行我的应用程序时,我得到“无法解析响应”。 JSON响应是对的。我检查了邮递员。
我的代码是:
lass func getStores(latitude:Float, longitude: Float, completion : @escaping (Array<Store>?, NSError?) -> ()) {
let latString: String = "\(latitude)"
let lonString: String = "\(longitude)"
var listStores: Array<Store> = []
let urlFull : String = ConstantHelper.kUrlStore
Alamofire.request(urlFull, method: .get, parameters: ["latitude":latString, "longitude": lonString], encoding: JSONEncoding(options: []), headers: [:]).validate()
.responseJSON { response in
switch response.result {
case .success:
if let repoJSON = response.result.value {
print(repoJSON)
let jsonArray = repoJSON as! NSArray
for item in jsonArray {
guard let store = Store(json: item as! JSON) else
{
print("Issue deserializing model")
return
}
listStores.append(store)
}
completion(listStores, nil)
}
break
case .failure(let error):
completion(nil, error as NSError?)
break
}
}
}
}
答案 0 :(得分:1)
我在请求中没有JSON enconding的情况下使用以下代码解决了我的问题:
Alamofire.request(urlFull, method: .get, parameters: ["latitude":latString, "longitude": lonString]).validate()
我不知道为什么在Swift 2.x和带有编码的iOS 10的Swift 3.0中工作,而不是在ios 9中...但上面的代码适用于所有情况。它真的不需要加入这个请求