【发布时间】:2018-10-02 06:05:15
【问题描述】:
我是 Alamofire 的新手,我用它来请求休息 api。
现在在提出请求时可能会出现两个问题,我想知道如何使用Alamofire 处理这些问题。
1) 如果用户有提交数据并且互联网很慢并且需要更长的时间从服务器获得响应怎么办。在这种情况下,应如何确保请求是否成功。或者我们可以向用户显示一些消息,即互联网速度很慢,以便他等待较长的响应。
2) 如果网速正常但服务器宕机或发送响应需要更长的时间怎么办?我们应该如何在应用程序中处理这些情况。并保持数据的完整性。
以下是我如何使用Alamofire 发出请求的示例。
static func getUserListFromServer(completion: @escaping(Bool,[Users]?,String?)->() ){
Alamofire.request(APPURL.getFeedbackUserList, method: .get, parameters: nil, encoding: URLEncoding.queryString, headers: nil).responseJSON { (responseJson) in
responseJson.result.ifSuccess {
do {
// Decode data to object
let jsonDecoder = JSONDecoder()
let root = try jsonDecoder.decode(Root.self, from: responseJson.data!)
if let users = root.users{
completion(true,users,nil)
}else{
completion(false,nil,"No users found.")
}
}
catch let err {
print(err.localizedDescription)
completion(false,nil,err.localizedDescription)
}
}
responseJson.result.ifFailure {
completion(false,nil,responseJson.result.error?.localizedDescription)
}
}
}
【问题讨论】:
-
尝试这个处理请求超时服务器维护错误stackoverflow.com/a/51609885/10150796
标签: ios swift alamofire response internet-connection