测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年11月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 xiaozao 维护。
依赖 | |
Moya | >= 0 |
ObjectMapper | >= 0 |
一个使用 泛型 + ObjectMapper + Moya 的网络请求工具
在您的代码中最终请求,应该类似于下面的样子
let _ = WolfNetwork.requestObjc(type: WolfApi.wolfGet, completion: { (data: PriceModel?) in
if let data = data {
debugPrint(data)
}
}) { (msg, code) in
debugPrint(code)
debugPrint(msg)
}
或者
let _ = WolfNetwork.requestList(type: WolfApi.wolfGet, completion: { (data: [PriceModel]?) in
if let data = data {
debugPrint(data)
}
}) { (msg, code) in
debugPrint(code)
debugPrint(msg)
}
上方的参数主要有两个
- WolfApi.wolfGet
- PriceModel
参数1, WolfApi.wolfGet.
如果您使用过 Moya,那么没错,WolfApi.wolfGet 就是 Moya 的 TargetType 对象。
在 Demo 中我简单创建了一个发起请求的方式参数2, PriceModel
其实就是您创建的 Model,需要遵循 ObjectMapper 的 Mappable 协议。
另外利用 WolfNetwork.request... 的返回值是一个 Cancellable 类型,您可以对发起的请求进行取消。
Debug 模式
// 这是一个单例对象, 在工程任意地方打开debug
// 即可打印发起网络请求后的所有参数返回值等信息, 利用的是Moya的插件机制.
WolfNetworkParams.isDebug = true
第一层参数
{
"data" : {
// 服务器返回的其他参数
},
"code" : 1000
"msg" : "success"
}
// 为了方便实用, 第一层model由这个工具来解开
// 所以如果key略有不同, 请在发起请求前赋值一次(仅需一次, 也支持多次修改)
WolfNetworkParams.code = "code"
WolfNetworkParams.msg = "msg"
WolfNetworkParams.data = "data"
设置通用的请求 header
WolfNetworkParams.header = ["":""]
设置之前 Alamofire 的 session,比如超时时间等。
WolfNetworkParams.sessionManager = Alamofire.SessionManager
pod 'WolfNet'
carthage 'xiaozao2008/WolfNet'