当我用Alamofire发送两次GET请求时,我会得到相同的响应,但我期待的是不同的响应.我想知道这是否是因为缓存,如果是这样,我想知道如何禁用它.

推荐答案

Swift 3号,阿拉莫菲尔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)")
        }

Swift相关问答推荐

RealityKit如何获得两个相对大小相同的ModelEntity?

如何在自定义视图中读取修改符子元素?

仅使用@MainActor注释类的部分时的并发问题

使用MKLocalSearch获取坐标

插入/删除视图时的Swiftui动态过渡

如何异步返回视图?什么?

SwiftUI如何能够在Text中使用字符串字面量来创建LocalizedStringKey?

列表不显示信息

如何从 Swift 中隐藏 Objective-C 类接口的一部分?

从文字创建数组时的 Swift 宏

在 SwiftUI 中将属性显式设置为其默认值

状态变量更改后,SwiftUI 视图不会更改

如何从另一个 swift 文件中调用函数

Swift 有没有办法在不使用 switch 语句的情况下获取关联值?

对齐时如何避免图像尺寸缩小

swiftui更改显示的 Select 器值

Swift:withCheckedContinuation 和 Dispatch QoSClass

在视图中设置所有变量

Swift中字节数组的NSData

应用程序包不包含有效标识符