如何使用Alamofire缓存文件下载请求



我一直在尝试实现我从URL下载的文件的缓存。文件的大小约为5 MB。以下是我从该文件URL获得的标题:

Content-Type : application/x-zip-compressed
Content-Length : 4088083
Expires : Sun, 24 Jun 2018 20:10:51 GMT
Etag : "1e2ec46bcg24f13"
X-Powered-By : ASP.NET
Last-Modified : Thu, 22 Jun 2017 11:21:48 GMT
Accept-Ranges : bytes
Server : Microsoft-IIS/8.0
Date : Sat, 24 Jun 2017 20:10:48 GMT
Cache-Control : public,max-age=31536000

我正在使用以下方式创建下载请求:

var request = URLRequest(url: URL(string: downloadUrl)!, cachePolicy: URLRequest.CachePolicy.returnCacheDataElseLoad, timeoutInterval: 120)
request.addValue("public", forHTTPHeaderField: "Cache-Control")

文件成功下载,但没有缓存。当我离线尝试下载时,我会得到' Internet连接似乎是离线的。'错误。

我尝试更改appdelegate didfinishlaunch的下面的urlcache

let urlCache = URLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
URLCache.shared = urlCache

但没有运气。预先感谢。

我认为这很简单:

let request = isNetwork ? 
  NSURLRequest(url: downloadUrl! as URL):   
  NSURLRequest(url: downloadUrl! as URL,cachePolicy:.returnCacheDataDontLoad, timeoutInterval:1);

如果您检测到网络可用,则iSnetwork是正确的。

最新更新