当我使用Alamofire两次发送GET请求时,我得到的响应是相同的,但是我期望得到不同的响应。我想知道这是否是由于缓存造成的,如果是这样,我想知道如何禁用它。
迅捷3,alamofire 4
我的解决方案是:
为Alamofire创建扩展:
extension Alamofire.SessionManager{ @discardableResult open func requestWithoutCache( _ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil, encoding: ParameterEncoding = URLEncoding.default, headers: HTTPHeaders? = nil)// also you can add URLRequest.CachePolicy here as parameter -> DataRequest { do { var urlRequest = try URLRequest(url: url, method: method, headers: headers) urlRequest.cachePolicy = .reloadIgnoringCacheData // <<== Cache disabled let encodedURLRequest = try encoding.encode(urlRequest, with: parameters) return request(encodedURLRequest) } catch { // TODO: find a better way to handle error print(error) return request(URLRequest(url: URL(string: "http://example.com/wrong_request")!)) } } }
并使用它:
Alamofire.SessionManager.default .requestWithoutCache("https://google.com/").response { response in print("Request: \(response.request)") print("Response: \(response.response)") print("Error: \(response.error)") }