1. 程式人生 > >swift中對AFNetWorking的簡單封裝

swift中對AFNetWorking的簡單封裝

廢話不多說.直接上程式碼.拿來就能用



import UIKit
import AFNetworking

// 列舉
enum RequestMethod: String{

    case GET = "GET"
    case POST = "POST"
    
}

class SinaHTTPClient: AFHTTPSessionManager {


    static let shareInstance: SinaHTTPClient = {
    
        let client = SinaHTTPClient()
        
        // 有可能設定一些東西
//        client.responseSerializer.acceptableContentTypes?.insert("")
        
        return client
    }()

    
    // 封裝一個方法,通過一個 列舉來區分一下我們的 get/post
    
    // 2 . 其他引數
    
    func reqeust(method: RequestMethod,urlString: String,params: [String: AnyObject]?,success:((NSURLSessionDataTask, AnyObject?) -> ())?,failure:((NSURLSessionDataTask?, NSError) -> ())?){
    
        if method == .GET {
        
            self.GET(urlString, parameters: params, success: success, failure: failure)
        } else if method == .POST {
        
            self.POST(urlString, parameters: params, success: success, failure: failure)
        }
        
        
        
    }

    //進一步封裝
    func reqeust(method: RequestMethod,urlString: String,params: [String: AnyObject]?,success:((json:[String: AnyObject]?) -> Void),failure:((error:NSError) -> Void)){
        
        let successBlock = { (task:NSURLSessionDataTask, json:AnyObject?) -> Void in
        
            // 成功之後調不呼叫這裡????
            // 2
            print(json)
            
            let dic = json as? [String: AnyObject]

        }

        let failurBlock = { (task:NSURLSessionDataTask?, error:NSError) -> Void in
 
            print(error)
            
        }
        if method == .GET {
            
            self.GET(urlString, parameters: params, success: successBlock, failure: failurBlock)
        } else if method == .POST {
            
            self.POST(urlString, parameters: params, success: successBlock, failure: failurBlock)
        }
   
    }

    
    func upload(urlString: String,imageData: NSData,params: [String: AnyObject]?,success:((json:[String: AnyObject]?) -> Void),failure:((error:NSError) -> Void)){
    
        self.POST(urlString, parameters: params, constructingBodyWithBlock: { (formdata) -> Void in
            
            //回想一下
            formdata.appendPartWithFileData(imageData, name: "pic", fileName: "xxxyyy", mimeType: "image/jpeg")
            
            }, success: { (_ , JSON) -> Void in
                printLog(JSON)
                success(json: JSON as? [String: AnyObject])
               
            }) { (_ , error ) -> Void in
                printLog(error)
                failure(error: error)
        }

        
    }
   
    
}

傳送POST,GET請求呼叫的時候:


上傳圖片資料呼叫的時候: