在Alamofire中更改timeoutIntervalForRequest的正确方法

我改变了timeoutIntervalForRequest

let manager = Alamofire.SessionManager.default manager.session.configuration.timeoutIntervalForRequest = 3 manager.request(url).response {} 

但似乎没有用,有什么建议吗?

这对我有用:)

 let configuration = URLSessionConfiguration.default configuration.timeoutIntervalForRequest = TimeInterval(7) configuration.timeoutIntervalForResource = TimeInterval(7) let session = URLSession(configuration: configuration) let task = session.dataTask(with: url) {} 

根据Apple的文档,对已初始化的URLSession配置的更改不起作用。 如果您想要自定义超时,请在请求中设置值,或者使用自定义配置创建自定义URLSession,如文档中所述

对于swift3试试这个

  var alamoManager: SessionManager? //Mark -- Alamofire session manager let configuration = URLSessionConfiguration.default configuration.timeoutIntervalForRequest = 3 alamoManager = Alamofire.SessionManager(configuration: configuration) alamoManager.request(request).responseJSON { response in } 

这也是一种选择

 Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 300 

尝试这个

 let request = NSMutableURLRequest(url: NSURL.init(string: "URL")! as URL) request.timeoutInterval = 3 // do additional configuration with your request like pass header etc.... Alamofire.request(request as! URLRequestConvertible).responseJSON { response in // do whatever you want here } 

你可以这样做:

 lazy var alamofireSession : Alamofire.SessionManager = { [weak self] in let configuration = URLSessionConfiguration.default configuration.timeoutIntervalForRequest = TimeInterval(30) configuration.timeoutIntervalForResource = TimeInterval(30) let session = Alamofire.SessionManager(configuration: configuration, delegate: sessionDelegate, serverTrustPolicyManager: nil) return session }()