您的位置:首页 > 理论基础 > 计算机网络

封装AFNetworking网络工具类(Swift)

2015-12-08 00:00 633 查看
摘要: 封装AFNetworking网络工具类(Swift)

封装AFNetworking网络工具类(Swift)

开始

//
//  NetworkTools.swift
//  测试-01-AFN

import UIKit
import AFNetworking

/// 请求方法枚举
enum TKRequestMethod: String{
case GET = "GET"
case POST = "POST"

}

//MARK: - 网络工具
class NetworkTools: AFHTTPSessionManager {

//单例
static let sharedTools: NetworkTools = {

let tools = NetworkTools(baseURL: nil)

//设置反序列化数据格式 -系统会自动将OC框架中的NSSet转换成 Set
tools.responseSerializer.acceptableContentTypes?.insert("text/html")
return tools
}()

}

//MARk: - 封装AFN 网络方法
extension NetworkTools {

func request(method: TKRequestMethod, Urlstring: String,parameters: [String:AnyObject]?, finished:(result: AnyObject?,error: NSError?)->()){

if method == TKRequestMethod.GET {
GET(Urlstring, parameters: parameters, success: { (_, result) -> Void in

finished(result: result, error: nil)

}) { (_, error) -> Void in

//在开发网络应用的时候,错误虽然不要提示给用户,但是一定要输出,我们程序猿一定要知道
print(error)
finished(result: nil, error: error)
}
}else{

POST(Urlstring, parameters: parameters, success: { (_, result) -> Void in

finished(result: result, error: nil)

}) { (_, error) -> Void in

//在开发网络应用的时候,错误虽然不要提示给用户,但是一定要输出,我们程序猿一定要知道
print(error)
finished(result: nil, error: error)
}

}

}

}

sdaadd

//
//  ViewController.swift
//  测试-01-AFN

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

NetworkTools.sharedTools.request(TKRequestMethod.POST,Urlstring: "http://httpbin.org/post", parameters: ["name": "zhangsan"]) { (result,error) -> () in

print(result)
}

}

}


继续

//
//  NetworkTools.swift
//  测试-01-AFN

import UIKit
import AFNetworking

/// 请求方法枚举
enum TKRequestMethod: String{
case GET = "GET"
case POST = "POST"

}

//MARK: - 网络工具
class NetworkTools: AFHTTPSessionManager {

//单例
static let sharedTools: NetworkTools = {

let tools = NetworkTools(baseURL: nil)

//设置反序列化数据格式 -系统会自动将OC框架中的NSSet转换成 Set
tools.responseSerializer.acceptableContentTypes?.insert("text/html")
return tools
}()

}

//MARk: - 封装AFN 网络方法
extension NetworkTools {

/// 网络请求
///
/// - parameter method:     GET / POST
/// - parameter URLString:  URLString
/// - parameter parameters: 参数字典
/// - parameter finished:   完成回调
func request(method: TKRequestMethod, Urlstring: String,parameters: [String:AnyObject]?, finished:(result: AnyObject?,error: NSError?)->()){

//定义成功回调
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 == TKRequestMethod.GET {

GET(Urlstring, parameters: parameters, success: success, failure: failure)
}else{

POST(Urlstring, parameters: parameters, success: success, failure: failure)
}

//        if method == TKRequestMethod.GET {
//            GET(Urlstring, parameters: parameters, success: { (_, result) -> Void in
//
//                finished(result: result, error: nil)
//
//                }) { (_, error) -> Void in
//
//                    //在开发网络应用的时候,错误虽然不要提示给用户,但是一定要输出,我们程序猿一定要知道
//                    print(error)
//                    finished(result: nil, error: error)
//                }
//        }else{
//
//            POST(Urlstring, parameters: parameters, success: { (_, result) -> Void in
//
//                finished(result: result, error: nil)
//
//                }) { (_, error) -> Void in
//
//                    //在开发网络应用的时候,错误虽然不要提示给用户,但是一定要输出,我们程序猿一定要知道
//                    print(error)
//                    finished(result: nil, error: error)
//                }
//
//            }

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: