封装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)
// }
//
// }
}
}