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
原创粉丝点击