【发布时间】:2021-12-22 22:07:09
【问题描述】:
努力了解 Alamofire (5.2.2) 如何为请求设置 timeOutInterval 和 cachePolicy。
我有以下设置:
// Create Alamofire Session with custom cache and timeout interval settings
let configuration = URLSessionConfiguration.af.default
configuration.requestCachePolicy = .reloadIgnoringLocalCacheData
configuration.timeoutIntervalForRequest = 30
let session = Session(configuration: configuration)
// Create request and leaving request's timeout interval (60) and cache policy (rawValue - 0) on default.
let request = URLRequest(url: URL(string: "https://github.com")!)
// Fire request
session.request(request).response { response in
print("### cachePolicy: \(response.request?.cachePolicy.rawValue)") // 0
print("### timeoutInterval: \(response.request?.timeoutInterval)") // 60
print("### session config: \(session.sessionConfiguration.timeoutIntervalForRequest)") // 30
print("### session cachePolicy: \(session.sessionConfiguration.requestCachePolicy.rawValue)") // 1
}
这些配置选项的来源是什么?配置还是请求?URLSessionConfiguration 中定义的内容会被实际使用吗?
如果是,那是否也不会覆盖URLRequest 中的公共属性?
是否因为在将会话配置设置应用于请求之前复制了 URLRequest 实例而没有被覆盖?
【问题讨论】: