【问题标题】:Swift Alamofire check wait timeout and put errorSwift Alamofire 检查等待超时并放置错误
【发布时间】: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 中使用超时?

【问题讨论】:

    标签: swift xcode settimeout 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 中添加了它,但它对我不起作用。
    猜你喜欢
    • 2018-06-29
    • 2017-12-26
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 2018-05-12
    • 2013-11-25
    • 2011-11-02
    相关资源
    最近更新 更多