CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

WolfNet 1.0.8

WolfNet 1.0.8

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Nov 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by xiaozao.



 
Depends on:
Moya>= 0
ObjectMapper>= 0
 

WolfNet 1.0.8

  • By
  • 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)
}

可见上方参数主要有2个

  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'