ALNetWorkingSwift
ALNetWorkingSwift 主要为公司内部 Swift 项目提供。迄今为止,已集成相关网络请求操作,包括数据映射模块。
中文文档
示例
要运行示例项目,请克隆该仓库,然后首先从 Example 目录运行 pod install
要求
- iOS 8.0+
- Xcode 9.3+
- Swift 4.1+
安装
ALNetWorkingSwift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
platform :ios, '8.0'
use_frameworks!
target '<Your Target Name>' do
pod 'ALNetWorkingSwift'
# You can also load only core modules:
# pod 'ALNetWorkingSwift/Core'
end
核心模块的基本使用
发起请求
你可以调用该方法来发起一个常见的网络请求
ALHTTPRequestOperationManager.default.requestBase(httpMethod: .get, url: "https://www.baidu.com", urlEncoding: TURLEncoding.default, parameter: nil) { (response) in
switch response.result {
case .success(let res):
print(res)
case .failure(let err):
print(err)
}
}
你也可以调用以下方法来上传数据
ALHTTPRequestOperationManager.default.uploadBase(url: "https://www.baidu.com", multipartFormData: { (formData) in
// The assembly to upload data
}) { (result) in
switch result {
case .success(let request, let streamingFromDisk, let streamFileURL):
print(request)
print(streamingFromDisk)
print(streamFileURL ?? "")
case .failure(let err):
print(err)
}
}
高级使用
你也可以重新封装这两种方法以满足您的业务需求
配置
为了符合ALCommonConfigProtocol
,一个结构体需要实现一些属性和方法
public struct HTTPConfig: ALCommonConfigProtocol {
public var kHttpUserAgent: String = ""
init() {
}
public func getHeader(dictHeader: [String: String]? = nil) -> [String: String] {
var header: [String:String] = [String: String]()
if dictHeader != nil {
header.merge(dictHeader!) { (_, new) in new }
}
return header
}
public func getContentType(contentType: Set<String>? = nil) -> Set<String> {
var content: Set<String> = Set<String>()
contentType?.forEach({ (ele) in
content.insert(ele)
})
return content
}
}
然后,调用此方法
ALHTTPRequestOperationManager.default.httpConfig = HTTPConfig()
作者
Anyeler,[email protected]
许可证
ALNetWorkingSwift遵循MIT许可证。更多信息请参阅LICENSE文件。