我迷上了ios APP的问题。 我正在使用Alamofire向REST API发出http请求。
一切正常,直到我的应用在2G或慢速连接上运行。 它使应用程序崩溃,调试器上没有任何错误消息。
这是我的API调用示例,我认为我做对了。
您知道我该怎么办才能处理慢速连接吗?
谢谢您的答复
AF.request(url_to_call, method: .patch, headers: headers).responseJSON{response in
let error_code = response.response?.allHeaderFields["Nx-Error-Code"] ?? "200"
if (error_code as! String != "200"){
parseErrorCode(code: error_code as! String)
} else {
do{
let json = try JSON(data: response.data!)
print(json)
} catch {
print(error)
}
}
}
答案 0 :(得分:1)
Alamofire不会使您的应用崩溃,而是通过强制解压缩response.data
值(如超时)来破坏您的应用。在最简单的级别上,您需要切换response.result
值,然后处理成功和失败的情况。
AF.request(url_to_call, method: .patch, headers: headers).responseJSON { response in
switch response.result {
case let .success(value): // Handle success.
case let .failure(error): // Handle failure.
}
}
对于超时或其他系统错误,您将在.failure
情况下看到错误。对于诸如响应代码验证之类的其他事情,您可能需要在validate()
之前添加一个responseJSON
调用。