博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift3 0 Alamofire的集成与封装
阅读量:6542 次
发布时间:2019-06-24

本文共 3337 字,大约阅读时间需要 11 分钟。

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..

转载于:https://juejin.im/post/5a31d9b35188257dd576176c

你可能感兴趣的文章
JavaScript面向对象 ~ 原型和继承(1)
查看>>
ubuntu下安装nginx时依赖库zlib,pcre,openssl安装方法
查看>>
spring cloud微服务分布式云架构--hystrix的使用
查看>>
解决Mac启动Eclipse Memory Analyzer报错问题
查看>>
jquery的$().each,$.each的区别
查看>>
自己写的进度条###
查看>>
实现批量添加20个用户,用户名为user1-50,密码为user后面跟5个随机字符
查看>>
Net命令详解
查看>>
CentOS linux 高可用集群之heartbeat
查看>>
Logwatch日志分析工具
查看>>
docker 基本操作Ⅱ(关于镜像操作)
查看>>
分工與合作
查看>>
轻松设置站点对ASP危险组件的调用权限
查看>>
看懂“拜占庭容错”,也就看懂了区块链的核心技术
查看>>
APMServ 5.2.6 Win7 Apache启动失败,请检查相关配置
查看>>
了解痘痘起因才能彻底告别痘痘烦恼
查看>>
Zabbix安装
查看>>
Java 日志 详解
查看>>
openstack虚拟化技术和镜像制作
查看>>
一个超棒的jQuery通知栏插件 - jBar
查看>>