Swift Alamofire 检查等待超时并放置错误
Posted
技术标签:
【中文标题】Swift Alamofire 检查等待超时并放置错误【英文标题】:Swift Alamofire check wait timeout and put error 【发布时间】:2016-10-05 10:39:12 【问题描述】:我使用 Alamofire 从 REST api 获取数据。
Alamofire.request(.GET, url)
.authenticate(user: user, password: password)
.responseString response in
if (response.result.error != nil)
show_error()
.response (request, response, data, error) in ...
如果用户没有互联网连接,我会收到并输入错误。如果用户在请求后等待超过 3 秒的响应,我想提出错误。
我是怎么做到的?如何在 Alamofire 中使用超时?
【问题讨论】:
【参考方案1】:Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 3000
这适用于所有请求。如果您只想为一个特定请求设置超时:
let sessionManager = Alamofire.SessionManager.default
sessionManager.configuration.timeoutIntervalForRequest = 3000
sessionManager.request(.GET, url)
.authenticate(user: user, password: password)
.responseString response in
if (response.result.error != nil)
show_error()
.response (request, response, data, error) in ...
您可以在README 文件中找到有关会话管理器的更多信息...
【讨论】:
适用于 Alamofire 4.0,但我使用 3.0 For Alamofire 3.0:Alamofire.Manager.sharedInstance.session.configuration.timeoutIntervalForRequest = 300 请告诉我,我需要在哪里输入代码?我想如果超时超过 3 秒来执行此功能:show_error() 那么超时肯定会出错。因此,您可以像处理任何其他错误一样处理它。 我需要在哪里添加此代码?我在 viewDidLoad 中添加了它,但它对我不起作用。以上是关于Swift Alamofire 检查等待超时并放置错误的主要内容,如果未能解决你的问题,请参考以下文章
每两个请求之一中的 Swift Alamofire “请求超时”
为啥没有网络连接时 Alamofire 需要这么长时间才能超时?
Swift 3 的 ObjectMapper 和 Alamofire 问题 Alamofire 4 的 Alamofire 版本