【发布时间】:2017-01-19 21:40:51
【问题描述】:
我正在使用 Swift 3.0 和 Alamofire 4。我正在使用单例网络类向服务器发出API 请求。当没有互联网时,Alamofire 需要大约 30 秒来完成关闭并运行故障处理程序。这是我的代码:
func performRequest(_ url:String,completionHandler:@escaping (_ 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
【问题讨论】:
-
您必须在创建会话之前设置
waitsForConnectivity标志。会话获取配置的副本,因此之后更改它对创建的会话没有影响。