AlamoFire忽略缓存控制标头

时间:2015-10-01 17:51:29

标签: alamofire

在使用AlamoFire执行请求/处理响应时是否可以忽略cache-control标头?

目前我正在发出如下请求,服务器正在返回大cache-control个标头,实际上我们需要忽略它们。

Alamofire.request(.GET, url).responseJSON { (_, _, result) in // Do something

我知道正确的解决方案是修改服务器响应,但目前这是不可行的。

此外,还有其他请求我想要尊重cache-control标题,所以理想情况下我会提供一个不涉及更改AlamoFire全局配置的解决方案。

1 个答案:

答案 0 :(得分:13)

要忽略缓存的数据,您需要在使用Alamofire启动它之前在cachePolicy上设置NSURLRequest

let URL = NSURL(string: "https://my_url_path...")!
let URLRequest = NSMutableURLRequest(URL: URL)
URLRequest.cachePolicy = .ReloadIgnoringCacheData

Alamofire.request(URLRequest)
    .response { response in
        print(response)
    }
  

在网址请求中设置cachePolicy始终会覆盖NSURLSessionConfiguration上设置的值。

默认情况下,NSURLSessionConfiguration缓存策略设置为.UseProtocolCachePolicy,它将遵循Cache-Control标头值。