Alamofire设置请求超时时间

作者: MMD_ | 来源:发表于2018-05-21 17:08 被阅读8次

    都知道Alamofire是一个比较火的iOS网络请求库,用着比较方便,但里面有个坑爹的地方是,文档里并没有对超时(timeout)问题做更进一步描述。

    Alamofire默认的超时时间是一分钟,要等比较久,如果加上loading效果,这么长时间loading体验不好。解决方法是要修改超时时间。查了些资料,是要进行类似如下设置:

    let configuration = URLSessionConfiguration.default
    configuration.timeoutIntervalForRequest = 10
    let sessionManager = Alamofire.SessionManager(configuration: configuration)
    

    然后是进行请求sessionManager.request...。这样你会发现,怎么按照网上的修改都不起作用。后面去官方issue查到,原来,不能在方法里面进行这些设置,sessionManager在退出方法后便被回收,设置自然不起作用,正确的方法是要保持一个公有的sessionManager变量,这样就不会被回收。即要进行类似如下改动:

    static let sharedSessionManager: Alamofire.SessionManager = {
            let configuration = URLSessionConfiguration.default
            configuration.timeoutIntervalForRequest = 10
            return Alamofire.SessionManager(configuration: configuration)
        }()
    

    相关文章

      网友评论

        本文标题:Alamofire设置请求超时时间

        本文链接:https://www.haomeiwen.com/subject/cklqjftx.html