Swift - Alamofire - GET/POST/upload 的使用
来源:互联网 发布:南大女生碎尸案 知乎 编辑:程序博客网 时间:2024/04/30 12:38
Swift - Alamofire - GET/POST/upload 的使用,有不足之处敬请各位盆友指正!
struct LCDAlamofire { static let netError = "数据加载失败!\n可能是网络信号差或没有连接网络" static let serverError = "无法连接到服务器" static let noData = "网络不给力,请稍后再试!" static let noUrl = "连接错误!" //MARK:---------- Alamofire_GET static func LCDAlamofire_GET(URLString:String, parameters:[String:AnyObject]?, showHUD:Bool = true, success:((AnyObject) -> Void)?, failure:((AnyObject) -> Void)?){ Alamofire.request(.GET, URLString, parameters: parameters) .responseJSON { response in // -- 返回数据之后隐藏 loading if showHUD { HUD.dismiss() } let result = response.result switch result { case .Success(let json): if (response.result.value != nil) { success?(json) // 返回成功数据 } else{ if showHUD { HUD.show(.None, text: noData, time: 1) } failure?(noData) } case .Failure(let error): print("请求失败: \(error)") if error.code == -1009 { if showHUD { HUD.show(.None, text: netError, time: 1) } failure?(netError) } else if error.code == -1004 { if showHUD { HUD.show(.None, text: serverError, time: 1) } failure?(serverError) } else if error.code == 3840 { if showHUD { HUD.show(.None, text: noUrl, time: 1) } failure?(noUrl) } else{ if showHUD { HUD.show(.None, text: noData, time: 1) } failure?(noData) } } } } //MARK:---------- Alamofire_POST static func LCDAlamofire_POST(URLString:String, parameters:[String:AnyObject]?, showHUD:Bool = false, success:((AnyObject) -> Void)?, failure:((AnyObject) -> Void)?){ Alamofire.request(.POST, URLString, parameters: parameters) .responseJSON { response in // -- 返回数据之后隐藏 loading if showHUD { HUD.dismiss() } let result = response.result switch result { case .Success(let json): if (response.result.value != nil) { success?(json) // 返回成功数据 } else{ if showHUD { HUD.show(.None, text: noData, time: 1) } failure?("失败") } case .Failure(let error): print("请求失败: \(error)") if error.code == -1009 { if showHUD { HUD.show(.None, text: netError, time: 1) } failure?(netError) } else if error.code == -1004 { if showHUD { HUD.show(.None, text: serverError, time: 1) } failure?(serverError) } else if error.code == 3840 { if showHUD { HUD.show(.None, text: noUrl, time: 1) } failure?(noUrl) } else{ if showHUD { HUD.show(.None, text: noData, time: 1) } failure?(noData) } } } } //MARK:---------- Alamofire_upload 上传 static func LCDAlamofire_upload(URLString:String, parameters:[String:AnyObject]?, imageFile:NSURL, imageData: NSData, name:String = "headImage", fileName:String = "headImage", mimeType:String = "image/jpg", showHUD:Bool = true, success:((AnyObject) -> Void)?, failure:((AnyObject) -> Void)?){ Alamofire.upload(.POST, URLString, multipartFormData: { (data) in /** * data: 图片, name: 服务器接收文件的参数名(判断是哪一张图片), fileName: 服务器获取到图片的名称, mimeType: 文件类型 */ data.appendBodyPart(data: imageData , name: name, fileName: fileName, mimeType: mimeType) // TO DO ... 这里传递更多参数 for (key, value) in parameters! { data.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key) } }) { (result) in //if showHUD { // HUD.dismiss() //} switch result { case .Success(let upload, _, _): upload.responseJSON(completionHandler: { (response) in print(response) // -- 返回数据之后隐藏 loading switch response.result { case .Success(let json): if (response.result.value != nil) { success?(json) // 返回成功数据 } else{ if showHUD { HUD.show(.None, text: noData, time: 1) } failure?("失败") } case .Failure(let error): print("请求失败: \(error)") if showHUD { HUD.show(.None, text: "无法连接服务器,请稍后重试!", time: 1) } } }) case .Failure(let err): HUD.show(.None, text: "\(err)", time: 1) break } } }}
0 0
- Swift - Alamofire - GET/POST/upload 的使用
- Swift - Alamofire简单GET和POST使用
- Swift3.0 Alamofire 网络请求的封装--->get,post,upload图片上传
- swift 数据请求Alamofire的使用
- Swift 3.0封装 URLSession 的GET/SET方法代替 Alamofire
- Socket实现的HTTP协议查看器(GET/POST/UPLOAD)
- 使用Alamofire进行XML参数的POST请求
- <iOS>Alamofire的使用
- Alamofire的使用教程
- [iOS]Swift-Alamofire 4.0 使用初探
- swift-使用NSURLConnection进行数据的提交和获取(POST与GET)
- Swift - 使用NSURL进行数据的提交和获取(POST与GET)
- Swift - 使用NSURL进行数据的提交和获取(POST与GET)
- swift开发之网络数据库(mysql)的增删改查(2)--引用Alamofire的post传值
- GET和POST的使用
- Swift 中AFNetworking 的替代方案 Alamofire
- Swift网络库Alamofire的导入
- Swift - 使用Alamofire通过HTTPS进行网络请求,及证书的使用
- 用xstart远程连接linux图形用户界面
- 订单模块设计
- JavaScript——一些用法的Mark
- Norflash 驱动
- 处理类型
- Swift - Alamofire - GET/POST/upload 的使用
- 《acm课程设计》总结
- 记一次Error:Execution failed for task ':o2osdk:transformClassesAndResourcesWithProguardForRelease'编译出错
- Python中yield的用法
- Reverse Nodes in k-Group
- 1747. 内存使用
- CodeForces 687B Remainders Game
- OpenCV2:Mat属性type,depth,step
- 如何判断栈、堆的增长方向?