我使用的是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迁移过来,这个问题只是从那时开始出现的。先谢谢了。
waitsForConnectivity
标志。会话将复制配置,因此在创建会话后更改配置不会对其产生影响。 - Enrique