优雅的网络

Swift 中优雅的网络处理

Platforms Swift Swift Package Manager

基于 AsyncHTTPClient

Swift 包管理器

Swift 包管理器是一个用于自动化 Swift 代码分发的工具,并且集成在 swift 编译器中。 它尚处于早期开发阶段,但 Graceful Networking 确实支持在受支持的平台上使用它。

设置好 Swift 包之后,添加 Graceful Networking 作为依赖项就像将其添加到 Package.swiftdependencies 值一样简单。

dependencies: [
    .package(url: "https://github.com/OliverLetterer/GracefulNetworking.git", .upToNextMajor(from: "0.1.0"))
]

致谢

Graceful Networking 在一定程度上受到了 github.com/Alamofire/Alamofire 的启发。

发送请求

NN.shared.get("https://jsonplaceholder.typicode.com/posts").response { response, error in
    debugPrint(response)
}
struct PostResponse: Codable {
    var id: Int
    var title: String
    var body: String
    var userId: String
}

let parameters: [String: NNWWWURLFormEncodable] = [
    "title": "title",
    "body": "body",
    "userId": "5"
]

NN.shared.post("https://jsonplaceholder.typicode.com/posts", parameters: parameters).responseDecodable(of: PostResponse.self) { response, error in
    debugPrint(response)
}

将数据下载到文件

let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("image.png")
NN.shared.download("https://httpbin.org/image/png", destination: url) { respose, error in
    debugPrint(respose)
}