RxNetworking 0.0.2

RxNetworking 0.0.2

Sanjith Kanagavel 维护。



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 协议

添加了 downloadTaskuploadTask 方法以下载和上传文件

需求

  • iOS 9.0+
  • Xcode 7.0+

作者

SanjithKanagavel, [email protected]

许可协议

RxNetworking遵循MIT许可协议。更多信息请参阅LICENSE文件。