.cache(true)
,不调用或者.cache(false)
则不缓存responseCacheAndString
能够先读取缓存数据,再读取网络数据经过isCacheData
属性能够区分缓存数据仍是网络数据git
DaisyNet.request(url, params: params).cache(true).responseCacheAndJson { value in
switch value.result {
case .success(let json):
if value.isCacheData {
print("我是缓存的")
} else {
print("我是网络的")
}
case .failure(let error):
print(error)
}
}复制代码
你也能够分别读取缓存数据和网络数据,以下代码github
cacheJson
方法获取缓存数据,调用responseJson
获取网络数据DaisyNet.request(url, params: params).cache(true).cacheJson { json in
print("我是缓存的")
}.responseJson { response in
print("我是网络的")
}复制代码
若是你不须要缓存,能够直接调用responseJson
方法json
DaisyNet.request(url).responseString { response in
switch response {
case .success(let value): print(value)
case .failure(let error): print(error)
}
}复制代码
同理,若是你要缓存Data
或者String
,与JSON
是类似的swift
/// 先读取缓存,再读取网络数据
DaisyNet.request(url).cache(true).responseCacheAndString { value in }
DaisyNet.request(url).cache(true).responseCacheAndData { value in }复制代码
/// 分别获取缓存和网络数据
DaisyNet.request(url).cache(true).cacheString { string in
print("我是缓存的")
}.responseString { response in
print("我是网络的")
}复制代码
取消请求api
DaisyNet.cancel(url, params: params)复制代码
清除缓存缓存
/// 清除全部缓存
func removeAllCache(completion: @escaping (Bool)->())
/// 根据url和params清除缓存
func removeObjectCache(_ url: String, params: [String: Any]? = nil, completion: @escaping (Bool)->())复制代码
思路:网络
DaisyNet.download(url).downloadProgress { progress in
/// 下载进度
}.response { response in
/// 下载完成
}复制代码
DaisyNet.downloadProgress(url) {
print($0)
}?.response(completion: { _ in
print("下载完成")
})复制代码
获取下载状态ui
DaisyNet.downloadStatus(url)复制代码
获取下载百分比url
DaisyNet.downloadPercent(url)复制代码
获取下载完成后文件所在位置spa
DDaisyNet.downloadFilePath(url)复制代码
删除某个下载
DaisyNet.downloadDelete(url)复制代码
取消某个下载
DaisyNet.downloadCancel(url)复制代码