美文网首页iOS开发iOS进阶指南iOS Developer
swift(基于AFNetWorking二次封装的网络请求工具)

swift(基于AFNetWorking二次封装的网络请求工具)

作者: 石头剪刀布艳艳 | 来源:发表于2016-08-05 00:34 被阅读324次

    我们通常见到的是OC版本的,今天给大家一份swift版本的,思想和OC版本的一样,写法不一样而已。

    import UIKit
    import AFNetworking
    
    class NetWorkTool: AFHTTPSessionManager {
        
        //定义一个单例
        static var shareNetWorkTool:NetWorkTool = {
           let instance = NetWorkTool()
            return instance
        }()
        
        //定义一个枚举请求方式
        enum requestMethod:String {
        case GET = "GET"
        case POST = "POST"
        }
        
        typealias requestClosure = (respondObject:AnyObject?,error:NSError?) -> ()
        
        /*
        method请求方式
        urlString 请求URl
        parameter 附加参数
        requestFinish 请求成功回调
        */
        
        func httpRequest(method:requestMethod,urlString:String,parameter:[String:AnyObject]?,requestFinish:requestClosure) {
            
            //请求成功和失败闭包的类型可以具体看get和post的方法中的请求成功和失败的闭包类型
            //定义一个请求成功的回调
            let successClosure = {
                (dataTasks:NSURLSessionDataTask,respondData:AnyObject?)
                in
                //请求成功则respondObject有数据。error肯定没数据,给nil
                requestFinish(respondObject: respondData, error: nil)
            }
            //定义请求失败的回调
            let failureClosure = {
                (dataTasks:NSURLSessionDataTask?,error:NSError) -> ()
                in
                //请求失败respondObject没数据,所以给nil,error肯定有数据,所以传给error
                requestFinish(respondObject: nil, error: error)
            }
            
            //区分请求方法
            if method == .GET {
                GET(urlString, parameters: parameter, progress: nil, success: successClosure, failure: failureClosure)
            } else {
                POST(urlString, parameters: parameter, progress: nil, success: successClosure, failure: failureClosure)
            }
           
        }
        
    }
    

    相关文章

      网友评论

        本文标题:swift(基于AFNetWorking二次封装的网络请求工具)

        本文链接:https://www.haomeiwen.com/subject/mlrhsttx.html