Alamofire 设置超时时间的正确方法

需求:每次请求可设置对应的超时时间

在5.0以后的版本中,可以直接通过SessionManager拿到sessionConfiguration属性,但是它的实现是这样的

public var sessionConfiguration: URLSessionConfiguration {
        return session.configuration
}

经测试,直接拿到设置是无效的,因为它没有赋值到session里面。仔细看看提供的请求方法,最终都是生成了一个URLRequest,再去请求,这个URLRequest是可以设置超时时间的,问题解决

var request = try URLRequest.init(url: url, method: method, headers: HTTPHeaders.init(httpHeaders))
 request = try URLEncoding.default.encode(request, with: req.toJSON())
 request.timeoutInterval = timeoutInterval  //设置超时时间
 sessionManager.request(request).responseJSON {[weak self] (dataResponse) in
     self?.responseAction(req: req, dataResponse: dataResponse, callBack: callBack)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容