需求:每次请求可设置对应的超时时间
在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)
}