MIAHydrogenKit 1.0.0

MIAHydrogenKit 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年2月
SPM支持 SPM

7factory维护。



  • CMPS

logo

mia-HydrogenKit

Swift 网络库(封装 NSURLSession)。

需求

iOS >= 8.0, Swift

设置

将 HydrogenKit 添加到你的 Podfile。

pod "HydrogenKit", "~> 2.0"

运行 pod install

通用用法

let hydrogen = Hydrogen()

let resource = Resource(
  path: "get",
  method: Method.GET,
  parse: { data in
      // perform standard JSON decoding using NSJSONSerialization here
      return "Hello World"
  }
)

let task = hydrogen.request(
  NSURL(string: "http://httpbin.org")!,
  resource: resource,
  completion: { result in
      switch result {
      case let .Success(value, request, statusCode):
        print(value, request, statusCode)
      case let .Error(error, request):
        print(error, request)
      }
  }
)
task.resume()

上面的代码片段使用以下四个主要步骤来执行网络调用

  • 创建了一个 hydrogen 实例。 注意:这个实例应该被你的类中的一个属性强烈持有。
  • 资源指定了路径、HTTP 方法和接收一个 NSData 实例并返回解析结果的闭包。(对于响应 JSON 的 REST 端点,这里的 NSData 可以转换为 JSON。)
  • 使用基础路径、之前配置的资源和支持闭包调用 Hydrogen 的请求方法。完成的闭包接收一个关联枚举,要么是 .Success 要么是 .Error。在成功的情况下,第一个关联值包含来自资源 parse 函数的结果(即,“Hello World”)。注意:如果你想更新 UI,这里需要调度到主队列。
  • 任务继续,这开始了网络调用。

配置

Hydrogen 可以通过初始化器中的三个(可选)参数来配置

  • config:一个 NSURLSessionConfiguration 对象。默认是 NSURLSessionConfiguration.defaultSessionConfiguration()
  • urlRequestBuilder:一个返回配置的 NSURLRequest 对象的 URLRequestBuilder 对象。默认是一个 Hydrogen 的 URLRequestBuilder 类的实例。(待办:URLRequestBuilder 应该是一个协议。)
  • acceptableStatusCodes:一个 Swift 范围,指定了被考虑为成功的 HTTP 状态码。默认是 200..<300

执行请求

该请求方法有三个不同的签名

  • baseURL: NSURL, resource: Resource<A>, completion: Result<A> -> Void:用于上面的示例。
  • baseURL: NSURL, resource: Resource<A>, modifyRequest: (NSMutableURLRequest -> Void)?, completion: Result<A> -> Void:接受一个额外的闭包,该闭包可能修改在开始请求之前的 NSMutableURLRequest 对象。(此闭包在后台队列上运行。)
  • baseURL: NSURL, request: Request<A>:可以在完成闭包中用于重试失败的请求。

取消请求

您可以通过调用请求方法返回的Task对象上的cancel方法,或者调用cancelAll来停止Hydrogen实例的所有调用。