测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最后发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 WildDylan 维护。
依赖 | |
ObjectMapper | ~> 2.2.1 |
Alamofire | ~> 4.1.0 |
基于 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
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 文件。