Latest 1.0.0
Homepage https://github.com/zhengrusong/HttpSessionManager
License MIT
Platforms ios 8.0
Dependencies Alamofire, SwiftyJSON
Authors

熟悉Alamofire和Moya二个网络请求框架后,自己基于Alamofire编写的1个通用型的网络请求库,简洁方便实用。

语言

Swift4.2

Cocoapods进行安装

pod 'HttpSessionManager'

使用说明(可以参考Example)

1.建一个网络请求配置类,实现RequestConfigProtocol协议。
2.在App启动后未发起网络请求前设置HttpSessionManager.shared.config。
3.网络请求接口实现TargetType协议。
4.发起网络请求。

业务层的简单使用

// 1.定义网络请求接口
enum UserAPI {
    //获取用户信息
    case userInfo
    //修改用户信息
    case modifyNickname(nickname: String)
}
// 2.实现网络请求接口
extension UserAPI: TargetType {
    var path: String {
        switch self {
        case .userInfo:
            return "UserInfo"
        case .modifyNickname:
            return "modifyNickname"
        }
    }
    var parameters: [String : Any]? {
        switch self {
        case .userInfo:
            return nil
        case let .modifyNickname(nickname: nickname):
            return ["nickname": nickname]
        }
    }
    // ...每个网络请求接口,TargetType协议里的实现可不一样。
    /// Optional。比如每个接口 可以有不同的请求地址。
    var customURL: URL? {
        switch self {
        case .userInfo:
            return URL.init(string: "a地址")
        case .modifyNickname:
            return URL.init(string: "b地址")
        }
    }
} 
/// 3.发起网络请求
HttpSessionManager.shared.request(target: MultiTarget(UserAPI.userInfo)) { result in
    switch result {
    case .success(let successRes):
        print(successRes)
    case .failure(let failRes):
        print(failRes.returnMsg)
    }
}

优点

1.RequestConfigProtocol接口丰富,全局配置方便。
2.TargetType接口丰富,每个网络请求可自定义度高,比如每个网络请求可以配置不同的请求地址、加解密方法、超时时间、请求头等。
3.稳定性好,扩展性强。

Latest podspec

{
    "name": "HttpSessionManager",
    "version": "1.0.0",
    "summary": "Httpu7f51u7edcu8bf7u6c42u7ba1u7406u5e93",
    "swift_version": "4.2",
    "description": "TODO: Add long description of the pod here.nSimple and convenient network request lib, based Alamofire.",
    "homepage": "https://github.com/zhengrusong/HttpSessionManager",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "zhengrusong": "[email protected]"
    },
    "source": {
        "git": "https://github.com/zhengrusong/HttpSessionManager.git",
        "tag": "1.0.0"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "HttpSessionManager/Classes/**/*",
    "dependencies": {
        "Alamofire": [
            "~> 4.8.2"
        ],
        "SwiftyJSON": [
            "4.2.0"
        ]
    }
}

Pin It on Pinterest

Share This