swift 网络工具类的分装 【转载XMG】

网络常用第三方库:AFNetworking
项目中一般不直接使用第三方库,需要自己进行封装,封装步骤如下

  1. 新建一个类,直接继承自AFHTTPSessionManager
    2.创建单例,swift创建单例更简单,只需要一句话就行
class GGNetWorkingTools: AFHTTPSessionManager {
    /// 单例
    static let shareInstance : GGNetWorkingTools = {
       let tools = GGNetWorkingTools()
        // AFNetworking默认不包含text/html,需要手动增加
        tools.responseSerializer.acceptableContentTypes?.insert("text/html")
        return tools
    }()
}

  1. 封装网络请求
extension GGNetWorkingTools {
    /// 网络请求
    ///
    /// - Parameters:
    ///   - methodType: 请求类型 post or get
    ///   - URLString: 请求地址
    ///   - parameters: 请求参数
    func request(methodType : requestType, URLString : String, parameters : [String : Any], finished : @escaping ((_ result : Any?, _ err : Error?) -> ())) {
        
        // 1. 成功回调闭包
        let successCallBack = { (task : URLSessionDataTask, result : Any?) in
            finished(result!,nil)
        }
        
        // 2. 失败回调闭包
        let failureCallBack = { (task : URLSessionDataTask?, err : Error) in
            finished(nil,err)
        }
        
        if methodType == .GET {
            get(URLString, parameters: parameters, progress: nil, success: successCallBack, failure: failureCallBack)
        }else {
            post(URLString, parameters: parameters, progress: nil, success: successCallBack, failure: failureCallBack)
        }
    }
    

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,994评论 4 61
  • 听书《共享经济》 “共享经济”是个比较火的概念,源于互联网技术对于生产力的解放,商业对生产消费的变革;比如说,滴滴...
    Marshallll阅读 210评论 0 0
  • 跟一个盆友聊天 我就跟她说我最近干嘛这个好烦那个有点不错 然后她突然说 我觉得你好惨 妈的气死我了 气的我写了个f...
    Viviiix阅读 399评论 0 0
  • 怎么才能好好的活在这个世界上,人生下来就是来受苦的,有的人受得了,他活下去了,有的人受不了,他死了。还有一些人,...
    宅小影321阅读 974评论 1 0

友情链接更多精彩内容