NetworkUtils
Swift 包,用于处理 HTTP 请求
概述
NetworkUtils
是一个为 iOS 上的 Swift 实现HTTP 网络请求的包。项目的目标是复制在 nodejs 中使用的axios npm 包的功能。
它基于 Foundation URL 加载系统(类似于 Alamofire)。NetworkUtils
使用 Ryu Games 的 SwiftPromises 库来实现 Promise 支持。
安装
NetworkUtils
通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 即可
pod 'NetworkUtils'
然后运行 pod install
。
示例用法
HTTP请求
使用NetworkUtils
进行HTTP请求非常简单。使用NetworkUtils.main
单例对象和HTTP方法之一:post
、get
、put
和delete
。
下面是一个HTTP GET请求示例:
let networkUtils = NetworkUtils.main
networkUtils.get("http://ip-api.com/json").then {(data) in
print("Data found: \(data)")
}.catch {(error) in
print("Error: \(error.localizedDescription)")
}
错误处理
NetworkUtils
提供了一个名为NetworkError
的非常基础的Error
子类。
public struct NetworkError: Error {
public let msg: String
public let code: Int
public var localizedDescription: String {
return "There was a Network Error with code \(code) and a message: \(msg)"
}
}
将通过NetworkError
拒绝。
}.catch {(error) in
let code = error.code
let msg = error.msg
let localizedDescription = error.localizedDescription
}
可达性
NetworkUtils
还提供可达性服务。例如,使用NetworkUtils.reachability
访问可达性,如下所示:
let reachability = NetworkUtils.reachability
switch reachability.connection {
case .wifi:
print("Reachable via WiFi")
case .cellular:
print("Reachable via Cellular")
case .none:
print("Not Reachable")
}
作者
WyattMufson - Ryu Games的共同创始人
许可协议
NetworkUtils
可在MIT许可协议下使用。