.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)複製代碼