DaisyNet 1.1.1

DaisyNet 1.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2024年6月
SPM支持 SPM

mengqingzhengAlucardulad 维护。



 
依赖关系
Cache~> 6.0.0
Alamofire~> 5.9.1
 

DaisyNet 1.1.1

  • MQZHot

DaisyNet

AlamofireCache 的封装实现对网络数据的缓存,可以存储 JSON,String,Data.

使用

注意: 如果您的参数中包含有变化的参数,如时间戳、token 等,这些参数需要写在 dynamicParams 参数中,以避免无法读取缓存。

func request(
    _ url: String,
    method: HTTPMethod = .get,
    params: Parameters? = nil,
    dynamicParams: Parameters? = nil,
    encoding: ParameterEncoding = URLEncoding.default,
    headers: HTTPHeaders? = nil)
    -> RequestTaskManager
  • 缓存数据只需要调用 .cache(true),不调用或不调用 .cache(false) 则不缓存。
  • 调用 responseCacheAndString 可以先读取缓存数据,然后读取网络数据。
  • 通过 isCacheData 属性可以区分缓存数据还是网络数据。
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)
    }
}
  • 您也可以分别读取缓存数据和网络数据,如下代码所示
  • 调用 cacheJson 方法获取缓存数据,调用 responseJson 获取网络数据。
DaisyNet.request(url, params: params).cache(true).cacheJson { json in
        print("我是缓存的")
    }.responseJson { response in
    print("我是网络的")
}
  • 如果您不需要缓存,可以直接调用 responseJson 方法。
DaisyNet.request(url).responseString { response in
    switch response {
    case .success(let value): print(value)
    case .failure(let error): print(error)
    }
}
  • 同样,如果您要缓存 DataString,与 JSON 类似。
/// 先读取缓存,再读取网络数据
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("我是网络的")
}
  • 取消请求
DaisyNet.cancel(url, params: params)
  • 清除缓存
/// 清除所有缓存
func removeAllCache(completion: @escaping (Bool)->())
/// 根据url和params清除缓存
func removeObjectCache(_ url: String, params: [String: Any]? = nil, completion: @escaping (Bool)->())

安装

1.pod 'DaisyNet'

2.pod install / pod update

作者

许可证

DaisyNet是在MIT许可证下发布的。有关详细信息,请参阅许可证