在使用AlamoFire执行请求/处理响应时是否可以忽略cache-control
标头?
目前我正在发出如下请求,服务器正在返回大cache-control
个标头,实际上我们需要忽略它们。
Alamofire.request(.GET, url).responseJSON { (_, _, result) in // Do something
我知道正确的解决方案是修改服务器响应,但目前这是不可行的。
此外,还有其他请求我想要尊重cache-control
标题,所以理想情况下我会提供一个不涉及更改AlamoFire全局配置的解决方案。
答案 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
标头值。