H(在爱尔兰和一些澳大利亚地区称为 aitch /ˈeɪtʃ/ 或 haitch /ˈheɪtʃ/;复数 aitches 或 haitches)
Haitch 是一个用于 iOS 和 Mac OS X 的 HTTP 客户端,用 Swift 编写。
Haitch 0.7+
及其 开发
需要 Swift 2.2+。如果您使用的是 Swift 版本 < 2.2,您应使用 Haitch 版本 0.6
。
发出请求很简单
let httpClient: HttpClient = HttpClient()
let req: Request = Request.Builder()
.url(url: "http://my.domain.com/path", params: params)
.method("GET")
.build()
httpClient.execute(req) { (response: Response?, error: NSError?) -> Void in
// deal with the response data (NSData) or error (NSError)
}
获取 JSON 简单
client.execute(request: req, responseKind: JsonResponse.self) {
(response, error) -> Void in
if let jsonResponse: JsonResponse = response as? JsonResponse {
print(jsonResponse.json) // .json == AnyObject?
}
}
如果您使用 SwiftyJSON,您可以创建一个自定义响应类来将响应数据转换为 JSON 数据类型。这样做很简单。
import Foundation
import SwiftyJSON
public class SwiftyJsonResponse: Response {
private (set) public var json: JSON?
private (set) public var jsonError: AnyObject?
public convenience required init(response: Response) {
self.init(request: response.request, data: response.data, statusCode: response.statusCode,
error: response.error)
}
public override init(request: Request, data: NSData?, statusCode: Int, error: NSError?) {
super.init(request: request, data: data, statusCode: statusCode, error: error)
self.populateJSONWithResponseData(data)
}
private func populateJSONWithResponseData(data: NSData?) {
if data != nil {
var jsonError: NSError? = nil
let json: JSON = JSON(data: data!, options: .AllowFragments, error: &jsonError)
self.jsonError = jsonError
self.json = json
}
}
}
sharedClient
(或者类似的)?因为这关乎您的需求,并非我们为您选择的。您应该既理解又掌握自己的网络堆栈。如果您对此非常坚持,可以子类化 HttpClient
并自行添加。很简单。
由您决定。世界上有其他出色的框架,但根据我们的经验,我们只需要他们所做的很小一部分。Haitch 的目标是允许您编写模块化、可重用的逻辑,符合您特定的需求。不是处理“万一”的可能性。
此处的代码是基于Posse与各种规模客户的经验编写的。它已经过生产测试。尽管如此,这个版本的代码是我们自己的。它是全新的。我们计划在生产中使用它,并计划持续改进它。如果你发现一个错误,请告诉我们!
我们是纽约市最好的辣妈手机店,没错。嘿,但我们有偏见。我们的东西在http://goposse.com。去看看吧。
Haitch是由Posse Productions LLC资助、拥有和管理的。在Twitter上关注我们@goposse。随时提出建议、想法或寒暄。
如果你认为你发现了Haitch的一个严重的安全漏洞或问题,请尽快向[email protected]报告。请勿在公共问题跟踪器上发布它,以便我们有时间和机会处理它,并相应地通知每个人。
Haitch是在修改后的MIT许可证下发布的。有关详细信息,请参阅LICENSE。