WolfNet 1.0.8

WolfNet 1.0.8

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2017年11月
SwiftSwift 版本3.0
SPM支持 SPM

xiaozao 维护。



 
依赖
Moya>= 0
ObjectMapper>= 0
 

WolfNet 1.0.8

  • 作者
  • xiaozao2008

WolfNet

一个使用 泛型 + 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)
}

上方的参数主要有两个

  1. WolfApi.wolfGet
  2. 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 与 Carthage 支持
pod 'WolfNet'

carthage 'xiaozao2008/WolfNet'