标題
//
// NetworkTool.swift
//
// Created by zhouyu on 16/1/25.
// Copyright © 2016年 mac All rights reserved.
//
import UIKit
import AFNetworking
enum HMHTTPClientType: String {
case GET = "GET"
case POST = "POST"
}
class HMHTTPClient: AFHTTPSessionManager {
// MARK: 單例
static let shareInstance: HMHTTPClient = {
let afn = HMHTTPClient()
// 網絡請求的 content-type: text/plain
afn.responseSerializer.acceptableContentTypes?.insert("text/plain","application/json","text/json","text/javascript","text/html")
return afn
}()
//MARK: 一次封裝的網絡工具類
func request(type: HMHTTPClientType,URLString: String, parameters: AnyObject?, progress downloadProgress: ((NSProgress) -> Void)?, success: ((NSURLSessionDataTask, AnyObject?) -> Void)?, failure: ((NSURLSessionDataTask?, NSError) -> Void)?){
if type == .GET {
self.GET(URLString, parameters: parameters, progress: downloadProgress, success: success, failure: failure)
} else if type == .POST {
self.POST(URLString, parameters: parameters, progress: downloadProgress, success: success, failure: failure)
}
}
//MARK: 二次封裝的網絡工具類
func request(type: HMHTTPClientType,URLString: String, parameters: AnyObject?,success: (jsonDict: [String: AnyObject])->(),failure: (error: NSError)->()){
// <#T##((NSURLSessionDataTask, AnyObject?) -> Void)?##((NSURLSessionDataTask, AnyObject?) -> Void)?##(NSURLSessionDataTask, AnyObject?) -> Void#>
let orginalSuccess = { (task:NSURLSessionDataTask, JSON:AnyObject?) -> Void in
// 網絡請求傳回之後,對資料進行處理
if let json = JSON as? [String: AnyObject] {
success(jsonDict: json)
}
}
// <#T##((NSURLSessionDataTask?, NSError) -> Void)?##((NSURLSessionDataTask?, NSError) -> Void)?##(NSURLSessionDataTask?, NSError) -> Void#>
let orginalFailure = { (task:NSURLSessionDataTask?, error:NSError) -> Void in
failure(error: error)
}
request(type, URLString: URLString, parameters: parameters, progress: nil, success: orginalSuccess, failure: orginalFailure)
}
//MARK: 三次封裝的網絡工具類
class func request(type: HMHTTPClientType,URLString: String, parameters: AnyObject?,success: (jsonDict: [String: AnyObject])->(),failure: (error: NSError)->()){
HMHTTPClient.shareInstance.request(type, URLString: URLString, parameters: parameters, success: success, failure: failure)
}
}