swift版基于AFNetworking的简单封装和snapKitd布局使用

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


//枚举 请求方式

enum HTTPMethod : Int{

case  GET = 0

case  POST = 1

}

class NetWorkTools: AFHTTPSessionManager {

//设置NetWorkTools单例对象 执行闭包

static let shareInstance :NetWorkTools = {

let tools = NetWorkTools()

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

return tools

}()

}

//分类  GET POST网络请求

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 只能获取数据

/// 封装 AFN 的上传文件方法

///

/// - parameter URLString:  URLString

/// - parameter parameters: 参数字典

///uploadProgress 进度对象

/// - parameter img:      UIImage对象

/// - parameter completion: 完成回调

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容