Alamofire的集成请看这篇文章 这篇文章很详细的写了项目如何集成Alamofire这个网络框架 Alamofire的作者推荐我们使用 我本来打算使用CocoaPods
去安装,提示安装成功,
运行时报一大堆的错误,如图
按照操作去转换,也没什么卵用,还是错误一堆,而且还无法更改(如果有大神知道解决办法,求告知!)
我是通过第一种方法导入的Alamofire,现在可以正常的进行网络请求,不过好像还是有一点小问题
在项目的目录里却没有这个,我现在是手动把这些添加到我们自己的项目
现在对Alamofire进行封装
创建一个文件,赋值下面的代码
import UIKitimport Alamofireprivate let NetworkRequestShareInstance = MCNetworkRequest()class MCNetworkRequest: NSObject {class var sharedInstance : MCNetworkRequest { return NetworkRequestShareInstance}} extension MCNetworkRequest { //MARK: - GET 请求 // let tools : NetworkRequest.shareInstance!func getRequest(urlString: String, params : [String : Any], success : @escaping (_ response : [String : AnyObject])->(), failture : @escaping (_ error : Error)->()) { //使用Alamofire进行网络请求时,调用该方法的参数都是通过getRequest(urlString, params, success :, failture :)传入的,而success传入的其实是一个接受 [String : AnyObject]类型 返回void类型的函数 Alamofire.request(urlString, method: .get, parameters: params) .responseJSON { (response) in/*这里使用了闭包*/ //当请求后response是我们自定义的,这个变量用于接受服务器响应的信息 //使用switch判断请求是否成功,也就是response的result switch response.result { case .success(let value): //当响应成功是,使用临时变量value接受服务器返回的信息并判断是否为[String: AnyObject]类型 如果是那么将其传给其定义方法中的success // if let value = response.result.value as? [String: AnyObject] { success(value as! [String : AnyObject]) // } let json = JSON(value) print(json) case .failure(let error): failture(error) print("error:\(error)") } } }//MARK: - POST 请求func postRequest(urlString : String, params : [String : Any], success : @escaping (_ response : [String : AnyObject])->(), failture : @escaping (_ error : Error)->()) { Alamofire.request(urlString, method: HTTPMethod.post, parameters: params).responseJSON { (response) in switch response.result{ case .success: if let value = response.result.value as? [String: AnyObject] { success(value) let json = JSON(value) print(json) } case .failure(let error): failture(error) print("error:\(error)") } }}//MARK: - 照片上传////// - Parameters:/// - urlString: 服务器地址/// - params: ["flag":"","userId":""] - flag,userId 为必传参数/// flag - 666 信息上传多张 -999 服务单上传 -000 头像上传/// - data: image转换成Data/// - name: fileName/// - success:/// - failture:func upLoadImageRequest(urlString : String, params:[String:String], data: [Data], name: [String],success : @escaping (_ response : [String : AnyObject])->(), failture : @escaping (_ error : Error)->()){ let headers = ["content-type":"multipart/form-data"] Alamofire.upload( multipartFormData: { multipartFormData in //666多张图片上传 let flag = params["flag"] let userId = params["userId"] multipartFormData.append((flag?.data(using: String.Encoding.utf8)!)!, withName: "flag") multipartFormData.append( (userId?.data(using: String.Encoding.utf8)!)!, withName: "userId") for i in 0..