Nappa

Platforms License

Swift Package Manager Carthage compatible CocoaPods compatible

Test

可适配的 HTTP 客户端

需求

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它

$ gem install cocoapods

要使用 CocoaPods 将 Nappa 集成到您的 Xcode 项目中,请在您的 Podfile 文件中指定它

pod 'Nappa', '~> 4.0.0'

然后,运行以下命令

$ pod install

Carthage

Carthage 是一个去中心化的依赖管理器,它可以自动化向您的 Cocoa 应用程序添加框架的过程。

您可以使用 Homebrew 安装 Carthage,使用以下命令

$ brew update
$ brew install carthage

要使用 Carthage 将 Nappa 集成到您的 Xcode 项目中,请在您的 Cartfile 文件中指定它

github "AlTavares/Nappa" ~> 4.0.0

Swift Package Manager

要将 Nappa 用作 Swift Package Manager 包,只需在您的 Package.swift 文件中添加以下内容。

dependencies: [
    .package(url: "https://github.com/AlTavares/Nappa.git", from: "4.0.0")
]

手动

如果您不想使用上述任何依赖管理器,您可以手动将 Nappa 集成到您的项目中。

Git Submodules

$ git init
$ git submodule add https://github.com/AlTavares/Nappa.git
$ git submodule update --init --recursive

Nappa.framework 会自动添加为目标依赖项、链接框架和嵌入式框架,在复制文件构建阶段中,这正是您在模拟器和设备上构建所需的一切。

嵌入式二进制文件

用法

基本用法

        let service = HTTPService()
        service.request(method: .get, url: "https://httpbin.org/get")
            .responseJSON { (jsonResponse) in
                switch jsonResponse.result {
                case .success(let response):
                    // do something with the result
                    print(response)
                case .failure(let error):
                    // do something in case of error
                    print(error)
                }
        }

您可以通过传递这些参数来发起请求

        request(method: HTTPMethod, url: String, payload: Encodable, headers: Headers? = nil, parameterEncoding: ParameterEncoding? = nil)

        request(method: HTTPMethod, url: String, data: Data, headers: Headers? = nil, parameterEncoding: ParameterEncoding? = nil)

        request(method: HTTPMethod, url: String, headers: Headers? = nil)

ParameterEncoding 更改您的有效负载的编码方式,选项包括

.json -> JSON Encoding
.form -> Form Data Encoding
.url  -> URL Encoding, a query string is added to the URL
.none -> no data

如果存在数据且未设置 ParameterEncoding,则将根据 HTTPMethod 自动设置

如果未在 Headers 中设置,则内容类型将使用当前的 ParameterEncoding 自动设置

许可证

Nappa 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE