Swift中网络单例类封装

来源:互联网 发布:js点击事件 编辑:程序博客网 时间:2024/06/06 20:20
//网络请求方式枚举(case 首字母大写)
enumSHNetworkToolsType:String {
   
case GET ="GET"
   
case POST ="POST"
}

//创建类SHNetworkTools 继承自AFN第三方框架的AFHTTPSessionManager类
classSHNetworkTools:AFHTTPSessionManager {
   
// 全局访问点
   static let sharedTools:SHNetworkTools = {
       
let tools =SHNetworkTools()
        // 指定反序列化格式
        tools.responseSerializer.acceptableContentTypes?.insert("text/plain”,"application/json","text/json","text/javascript","text/html")
       return tools
    }()
   
   
// 网络请求支持getpost请求公共方法
   /// 请求公共方法
   ///
   /// - parameter type:       请求方式
   /// - parameter urlString:  请求url
   /// - parameter parameters: 请求参数
   /// - parameter success:    成功的闭包
   /// - parameter failure:    失败的闭包
   func request(type:SHNetworkToolsType, urlString:String, parameters:AnyObject?, success: (response:AnyObject?)->(), failure: (error:NSError)->()){
       
// get请求
       if type == .GET{
           
GET(urlString, parameters: parameters, progress:nil, success: { (_, res) -> Void in
                success(response: res)
                }, failure: { (
_, err) ->Void in
                    failure(error: err)
            })
        }
else{
           
// post 请求
           POST(urlString, parameters: parameters, progress:nil, success: { (_, res) -> Void in
                success(response: res)
                }, failure: { (
_, err) ->Void in
                    failure(error: err)
            })
        }
       
    }

}

0 0