即使超过缓存控制年龄限制,也会从缓存加载值

时间:2017-05-16 11:05:23

标签: ios iphone swift swift3 alamofire

我的服务器响应中的缓存控制限制[private; max-age=15]设置为15秒。但即使在15秒后,响应也会从缓存加载。我正在使用swift3& Alamofire 4.0

var request = URLRequest(url: URL(string: urlStr)!)
        request.timeoutInterval = 30
        request.httpMethod = "GET"
        request.addValue("private", forHTTPHeaderField: "Cache-Control")
        request.cachePolicy = .returnCacheDataElseLoad
        request.addValue("token", forHTTPHeaderField: "auth_key")

        Alamofire.request(request).responseObject(completionHandler: { (response: Response) in {
        print(response)
        }

1 个答案:

答案 0 :(得分:0)

您应该更改缓存政策。 Apple的文档是,

  

case returnCacheDataElseLoad指定现有的缓存数据   应该用来满足要求,无论年龄或年龄   到期日。如果缓存中没有现有数据   对应请求,数据从始发加载   源。

来源:https://developer.apple.com/reference/foundation/nsurlrequest.cachepolicy

查看清单,找出最适合您的政策。我建议将其设置为默认useProtocolCachePolicy