Я новичок в 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)
}
}
}