繁体   English   中英

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

[英]How do I cache a file download request using 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为true。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM