swift版基于AFNetworking的簡單封裝和snapKitd布局使用

Demo 下載地址 :https://github.com/jasoniOS35/NetWorkTool.git


//枚舉 請求方式

enum HTTPMethod : Int{

case? GET = 0

case? POST = 1

}

class NetWorkTools: AFHTTPSessionManager {

//設(shè)置NetWorkTools單例對象 執(zhí)行閉包

static let shareInstance :NetWorkTools = {

let tools = NetWorkTools()

tools.responseSerializer.acceptableContentTypes?.insert("text/html")

return tools

}()

}

//分類? GET POST網(wǎng)絡(luò)請求

extension NetWorkTools {

func request(requestType : HTTPMethod, url : String, parameters : [String : Any]?, succeed : @escaping([String : Any]?) -> (), failure : @escaping(Error?) -> ()) {

// 定義成功閉包

let successBlock = { (task: URLSessionDataTask, responseObj: Any?) in

succeed(responseObj as? [String : Any])

}

// 定義失敗的閉包

let failureBlock = { (task: URLSessionDataTask?, error: Error) in

failure(error)

}

// Get 請求

if requestType == .GET {

get(url, parameters: parameters, progress: nil, success: successBlock, failure: failureBlock)

}

// Post 請求

if requestType == .POST {

post(url, parameters: parameters, progress: nil, success: successBlock, failure: failureBlock)

}

}

上傳圖片

// MARK: - 封裝 AFN 方法

/// 上傳文件必須是 POST 方法,GET 只能獲取數(shù)據(jù)

/// 封裝 AFN 的上傳文件方法

///

/// - parameter URLString:? URLString

/// - parameter parameters: 參數(shù)字典

///uploadProgress 進度對象

/// - parameter img:? ? ? UIImage對象

/// - parameter completion: 完成回調(diào)

func unload(urlString: String, parameters: AnyObject?, img : UIImage , uploadProgress: ((_ progress:Progress) -> Void)?, success: ((_ responseObject:AnyObject?) -> Void)?, failure: ((_ error: NSError) -> Void)?) -> Void {

post(urlString, parameters: parameters, constructingBodyWith: { (formData) in

let imageData = UIImageJPEGRepresentation(img, 0.8)

formData.appendPart(withFileData: imageData!, name: "upload", fileName: "head.img", mimeType: "image/jpeg")

}, progress: { (progress) in

uploadProgress!(progress)

}, success: { (task, objc) in

if objc != nil {

success!(objc as AnyObject?)

}

}, failure: { (task, error) in

failure!(error as NSError)

})

}

包括簡易的SnapKit的使用

git地址 :https://github.com/jasoniOS35/NetWorkTool.git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容