在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 }()