AFNetworking 的封装 Swift

网络请求方法枚举

/// 请求方法
enum HMRequestMethod: String {
case GET = "GET"
case POST = "POST"
}

单例 & 响应格式设置方法

/// 网络工具类
class NetworkTools: AFHTTPSessionManager {

/// 网络工具单例
static let sharedTools: NetworkTools = {

    let tools = NetworkTools(baseURL: nil)

    tools.responseSerializer.acceptableContentTypes?.insert("text/html")

    return tools
}()

}

AFN 内部方法封装

// MARK: - 封装 AFN 内部方法
extension NetworkTools {

/// 请求回调
typealias RequestCallBack = (result: AnyObject?, error: NSError?) -> ()

/// 网络请求方法
///
/// - parameter method:     请求方法 GET / POST
/// - parameter URLString:  URLString
/// - parameter parameters: 参数字典
/// - parameter finished:   完成回调
func request(method: HMRequestMethod, URLString: String, parameters: [String: AnyObject]?, finished:RequestCallBack) {

    // 成功回调
    let success = { (task: NSURLSessionDataTask, result: AnyObject) -> Void in
        finished(result: result, error: nil)
    }
    // 失败回调
    let failure = { (task: NSURLSessionDataTask, error: NSError) -> Void in
        print(error)

        finished(result: nil, error: error)
    }

    if method == HMRequestMethod.GET {

        GET(URLString, parameters: parameters, success: success, failure: failure)
    } else {
        POST(URLString, parameters: parameters, success: success, failure: failure)
    }
}
}

控制器调用

   NetworkTools.shareInstance.request(.GET, urlString: "http://httpbin.org/get", parameters: ["name" : "why"]) { (result, error) -> () in
        if error != nil {
            print(error)
            return
        }

        print(result)
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值