如何在Alamofire中禁用缓存

当我使用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)")

}

以上是 如何在Alamofire中禁用缓存 的全部内容, 来源链接: utcz.com/qa/411556.html

回到顶部