OStack程序员社区-中国程序员成长平台

标题: ios - 为什么没有网络连接时 Alamofire 需要这么长时间才能超时? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 18:38
标题: ios - 为什么没有网络连接时 Alamofire 需要这么长时间才能超时?

我将 Swift 3.0Alamofire 4 一起使用。我正在使用单例网络类向服务器发出 API 请求。当没有互联网时,Alamofire 需要大约 30 秒来完成关闭并运行故障处理程序。这是我的代码:

func performRequest(_ url:String,completionHandlerescaping (_ Success:Bool,AnyObject?) -> Void) {

    Alamofire.request(url).validate().responseJSON { response in

        if response.result.isSuccess { //Request was successful
            self.errorCount = 0
            completionHandler(true,response.result.value as AnyObject?)
        } else {
            print("failure occured")
            self.setNoInternetDialogAppear()
        }
    }
}

我也尝试使用此代码设置超时,但没有效果:

`Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 2000`

我最近从 Swift 2.2 和 Alamofire 3 迁移了我的代码,并且从那以后才开始这样做。 TIA



Best Answer-推荐答案


var alamoFireManager = Alamofire.SessionManager.default
self.alamoFireManager.session.configuration.timeoutIntervalForRequest = 2000
....
self.alamoFireManager.request(...)

使用变量有效。

关于ios - 为什么没有网络连接时 Alamofire 需要这么长时间才能超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41752209/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4