NetworkSDK 0.2.3

NetworkSDK 0.2.3

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

WildDylan 维护。



 
依赖
ObjectMapper~> 2.2.1
Alamofire~> 4.1.0
 

  • Dylan

网络

MIT Licence

基于 Alamofire 的开源 NetworkSDK

示例
import NetworkSDK
import ObjectMapper

一些配置

Network.defaultHeader = ["a": "b", "c": "d"]
Network.baseURL = "http://192.168.199.173"

使用 objectMapper 创建模型

struct Options: Mappable {
  var imageUri: String?
  var message: String?
  var dataPath: String?
  var userUri: String?
  var status: String?
  var dataVersion: String?
  var bizUri: String?

  init?(map: Map) {

  }

  mutating func mapping(map: Map) {
    imageUri    <- map["imageUri"]
    message     <- map["message"]
    dataPath    <- map["dataPath"]
    userUri     <- map["userUri"]
    status      <- map["status"]
    dataVersion <- map["dataVersion"]
    bizUri      <- map["bizUri"]
  }
}

然后,触发

let request = NetworkRequest<Options>("call.json")

request.send {
  if let option = $0 {
    print(option.toJSON())
  } else {
    print($1 ?? Error())
}

上面的代码将像这样发送请求:

http://192.168.199.173/call.json
下载请求
Network.baseURL = "http://ocef2grmj.bkt.clouddn.com"

// http://ocef2grmj.bkt.clouddn.com
// LLWeChat-master.zip 75.8MB
// 1083748_3.jpg 51.67kb

let documentURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURL = documentURL.appendingPathComponent("b.png")

let downloadRequest = NetworkRequest<NetworkModel<Any>>("Group.png", destination: fileURL, true)
downloadRequest.download({

  if $1 == nil { //
    print($0) 
  }
}, {
  debugPrint($0.fractionCompleted)
})
上传请求
let multipartdata: (Data, String, String, String) = (data!, "fileData", "a.png", "image/png")
let uploadRequest = NetworkRequest<NetworkModel<Any>>("uploadResources.json", [multipartdata], ["category": "HEAD"])
uploadRequest.baseURL = "http://your.domain.com"

uploadRequest.upload({ 
  debugPrint($0 ?? "")
  debugPrint($1 ?? "")
}, {
  debugPrint("upload", $0.fractionCompleted)
})
多下载请求
let documentURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURL = documentURL.appendingPathComponent("b.jpg")

let downloadRequest0 = NetworkRequest<NetworkModel<Any>>("Group.png", destination: fileURL, true)
let downloadRequest1 = NetworkRequest<NetworkModel<Any>>("1083748_3.jpg", destination: fileURL, true)

NetworkMultiRequest<NetworkModel<Any>>().download([downloadRequest0, downloadRequest1], handler: { object in
  print(object)
}, { progress in
  print("0:", progress.fractionCompleted)
}, { progress in
  print("1:", progress.fractionCompleted)
})
其他

调试日志

Network.debug = false
特性
  • [x] 易于使用
  • [x] 自定义请求
  • [x] 远程加载失败时从 URLCache 加载
  • [x] 更安全地下载请求恢复
  • [x] 简单上传
API 文档

文档

安装

Network 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:

pod "NetworkSDK", "~> 0.2.3-beta"

依赖版本

dependency 'ObjectMapper', '~> 2.2.1'
dependency 'Alamofire', '~> 4.1.0'
作者

Dylan,[email protected]

许可

Network 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。