MinimalNetworking
Minimal networking 恰好如其名,是一个简单的、无依赖的网络库,旨在以最简化方式流式传输网络请求,无需任何不必要的装饰。
安装
MinimalNetworking 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile。
pod 'MinimalNetworking'
使用
使用 Minimal Networking 与安装 pod (见安装说明)并初始化 HttpClient 一样简单。从那里,您可以使用 get
和 post
方法。
get 方法是
let httpService = HttpService()
_ = httpService.get(url: "url_to_hit",
responseContentType: ResponseContentType.json,
additionalHeaders: ["Accept": "application/json"])
{ (networkResponse: NetworkResponse<ParsedServerData?>) in
DispatchQueue.main.async {
switch networkResponse {
case .success(let parsedData, let response):
//use your data
case .failure(let error):
//handle the error
}
}
}
Minimal Networking 允许您使用 ResponseContentType
枚举指定数据的预期响应类型。如果它是一种受支持的类型(目前仅支持 JSON),则会自动解析服务器响应。
post 方法几乎相同。唯一的区别是它需要一个类型为 POSTBodyEncodable
的 body 参数,该参数必须提供表示如何将类解码为 bodyParam 的 String。
struct PostQuery: POSTBodyEncodable {
//struct implementation details...
var asFormUrlEncoded: String = "minimalNetworking=Awesome!"
}
_ = httpService.post(url: "https://httpbin.org/post",
body: PostQuery(),
responseContentType: ResponseContentType.json,
additionalHeaders: ["Accept": "application/json"])
{ (networkResponse: NetworkResponse<PostResponse?>) in
//completion handler functionality
}
解析的响应被返回给用户,结构如下所示:
public enum NetworkResponse<T> {
case success(T, HTTPURLResponse)
case failure(Error)
}
在成功的情况下,您将返回解析后的类和 HTTPUrlResponse 类。否则,您将收到一个包含错误详细信息的失败消息方法。
示例
要运行示例项目,请克隆仓库,然后在示例目录中运行 pod install
。
需求
MinimalNetworking 需要 iOS 9.3 或更高版本。更新您的项目。
未来
Minimal Networking Pod 还处于预发布状态,在正式发布前仍有多项功能计划。这些包括:
- 支持更多请求类型
- 提供自动将类编码为 POST 体的功能
- 更好地支持不期望返回数据的请求
- 等等!
请查看 Github 项目的标签页获取更多信息。
作者
Firanus, [email protected]
许可证
MinimalNetworking 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。