RxNetworking
使用 RxSwift 的网络库
示例
要运行示例项目,请先克隆仓库,然后从 Example 目录中首先运行 pod install
。
安装
RxNetworking 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'RxNetworking'
用法
使用 URL 的 DataTask
if let url = URL(string: "<url>") {
URLSession.shared
.rx
.dataTask(url: url)
.subscribe(onNext: { (result) in
if result.Error == nil, let data = result.Data {
print("urlDataTaskExample:\n" + String(decoding: data, as: UTF8.self))
}
}).disposed(by: disposeBag)
}
使用 URLRequest 的 DataTask
var request = URLRequest(url: URL(string: "<url>")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
URLSession.shared
.rx
.dataTask(request: request)
.subscribe(onNext: { (result) in
if result.Error == nil, let data = result.Data {
print("getRequest:\n" + String(decoding: data, as: UTF8.self))
}
}).disposed(by: disposeBag)
使用内置数据任务的解码
if let url = URL(string: "<url>") {
URLSession.shared
.rx
.dataTask(url: url,returnType: YourCodableStruct.self)
.subscribe(onNext: { (result) in
if result.Error == nil, let data = result.Data,
let jsonData = try? JSONEncoder().encode(data),
let jsonString = String(data: jsonData, encoding: .utf8) {
print(jsonString)
}
}).disposed(by: disposeBag)
}
returnType
应该扩展 Codable 协议
添加了 downloadTask
和 uploadTask
方法以下载和上传文件
需求
- iOS 9.0+
- Xcode 7.0+
作者
SanjithKanagavel, [email protected]
许可协议
RxNetworking遵循MIT许可协议。更多信息请参阅LICENSE文件。