2015-10-01 21 views
5

Có thể bỏ qua cache-control tiêu đề khi thực hiện yêu cầu/xử lý phản hồi với AlamoFire không?AlamoFire Bỏ qua tiêu đề kiểm soát bộ nhớ cache

Hiện tại tôi đang thực hiện một yêu cầu như sau và máy chủ đang trả về các tiêu đề lớn cache-control, khi thực tế chúng tôi cần bỏ qua chúng.

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

Tôi biết giải pháp đúng là sửa đổi phản hồi của máy chủ, nhưng điều này không khả thi tại thời điểm này.

Ngoài ra, còn có các yêu cầu khác mà tôi muốn tôn trọng các tiêu đề cache-control, vì vậy, lý tưởng nhất là tôi sẽ giải pháp không liên quan đến việc thay đổi cấu hình toàn cầu của AlamoFire.

Trả lời

13

Để bỏ qua dữ liệu được lưu trong bộ nhớ cache, bạn cần đặt cachePolicy trên NSURLRequest trước khi sử dụng Alamofire để bắt đầu.

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

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

Thiết lập cachePolicy theo yêu cầu URL luôn ghi đè giá trị thiết lập trên NSURLSessionConfiguration.

Theo mặc định, chính sách bộ nhớ cache NSURLSessionConfiguration được đặt thành .UseProtocolCachePolicy sẽ tôn trọng các giá trị tiêu đề Cache-Control.

Các vấn đề liên quan