看了一些swift的视频,封装了一个关于 AFNetworking的类
直接上代码:
import AFNetworking
enum RequestType {
case GET
case POST
}
class NetworkTools: AFHTTPSessionManager {
//单例
//let 保证线程安全的
static let shareInstance : NetworkTools = {
let tools = NetworkTools()
tools.responseSerializer.acceptableContentTypes?.insert("text/html")
return tools
}()
}
//封装请求方法
extension NetworkTools {
func result(methodType: RequestType,urlstr: String,parameters: [String : AnyObject],finsihed: (result:AnyObject?,error:NSError?) -> ()){
//1.自定义成功的回调闭包
let successCallback = { (task: NSURLSessionDataTask, result : AnyObject?) in
finsihed(result: result, error: nil)
}
//2.自定义失败的回调闭包
let failtureCallback = { (task: NSURLSessionDataTask?, error: NSError) in
finsihed(result: nil, error: error)
}
//3.发送网络请求
if methodType == .GET {
GET(urlstr, parameters: parameters, progress: nil, success: successCallback, failure: failtureCallback)
}else if methodType == .POST {
POST(urlstr, parameters: parameters, progress: nil, success: successCallback, failure: failtureCallback)
}
}
}