1. Alamofire github 地址: Alamofire​​​​​​​​​​​​​​
2. 终端切换到项目文件夹, 执行指令 pod init , 项目文件夹中, 打开 Podfile 文件,写入库名称

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'target '测试-01-Alamofire' do# Comment the next line if you don't want to use dynamic frameworksuse_frameworks!# Pods for 测试-01-Alamofirepod 'Alamofire'
end

3. 回到终端,输入指令 pod search Alamofire -> pod help -> pod install --no-repo-update, 下载完成库
4. 测试请求方法

    /// 网络请求/// - Parameters:///   - method: GET / POST///   - URLString: URLString///   - parameters: 参数字典///   - finished: 完成回调private func request(method: HTTPMethod, URLString: String, parameters: [String: Any]?, finished: @escaping requestCallBack){AF.request(URLString, method: method, parameters: parameters).responseJSON{ response inswitch response.result{case let .success(data):finished(data,nil)breakcase let .failure(error):finished(nil,error)break}}}

5. 测试上传文件方法

///上传文件private func upload(URLString: String, data: Data, name: String,  parameters: [String: Any]?, finished: @escaping requestCallBack){var parameter = parameters//如果追加 token 失败,直接返回if !appendToken(parameters: &parameter){// token 无效finished(nil,NSError(domain: "cn.cast.error", code: -1001, userInfo: ["message":"token 为空"]))return}/**1. data 要上传文件的二进制2. name 是服务器定义的字段名称 - 后台接口文档会提示3. fileName 是保存在服务器的文件名,但是:现在通常可以随便写,后台会做一些处理- 根据上传的文件,生成 缩略图,中等图,高清图- 保存在不同路径,并且自动生成文件名- fileName 是 HTTP 协议定义的属性4. mimeType  / contentType: 客户端通知服务器,二进制数据的准确类型- 大类型 / 小类型* image/gif  image/jpg image/png* text/plain text/html* application/json- 服务器不准确的类型* application/octet-stream*///TODO
//        post(URLString, parameters: parameter, headers: nil, constructingBodyWith: { formData in
//            formData.appendPart(withFileData: data, name: name, fileName: "test", mimeType: "application/octet-stream")
//        }, progress: nil) { _, result in
//            finished(result,nil)
//        } failure: { _, error in
//            print(error)
//            finished(nil,error)
//        }//2>上传文件AF.upload(multipartFormData: { multipartFormData in//拼接上传文件的二进制数据multipartFormData.append(data, withName: name, fileName: "test", mimeType: "application/octet-stream")//遍历参数字典,生成对应的参数数据if let parameter = parameter {for (k, v) in parameter {let str =  v as! Stringlet strData = str.data(using: .utf8)!// data 是 v 的二进制数据 name 是 KmultipartFormData.append(strData, withName: k)}}}, to: URLString).responseJSON { response inprint(response.result)switch response.result{case let .success(data)://完成回调finished(data,nil)breakcase let .failure(error)://在开发网络应用中的时候,错误不要提示给用户,但是错误一定要输出print(error)finished(nil,error)break}}}

Alamofire 框架封装与使用相关推荐

  1. iOS swift Alamofire+HandyJSON网络框架封装

    iOS swift Alamofire+HandyJSON网络框架封装 我们在学习Objective_C时使用的网络框架是AFNetworking+MJExtension,而在swift中Alamof ...

  2. iOS 走近商城 APP(三 WKWebView 商品规格选择框架封装)

    原文链接:http://www.jianshu.com/p/293ee1bfe104 商城 -- 由 3033 分享 开篇 忽然发现最近也只有值班才能写东西了,中间更新了两篇其他的断了下商城相关的文章 ...

  3. 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

  4. 利用Spring框架封装的JavaMail现实同步或异步邮件发送

    利用Spring框架封装的JavaMail现实同步或异步邮件发送 作者:张纪豪 J2EE简单地讲是在JDK上扩展了各类应用的标准规范,邮件处理便是其中一个重要的应用.它既然是规范,那么我们就可以通过J ...

  5. 【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径(四)...

    目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现St ...

  6. Python——使用Flask框架封装接口

    Python--使用Flask框架封装接口 引言 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活.轻便.安全且容易上手.它可以很好地结合MVC模式进行开发,开发 ...

  7. Android肝帝战纪之网络请求框架封装(Retrofit的封装)

    网络请求框架封装(OkHttp3+Retrofit+loading的封装) Retrofit的Github链接 点此链接到Github AVLoadingIndicatorView的Github链接( ...

  8. MVVM+Retrofit+Kotlin网络框架封装

    上篇文章讲了MVVM入门,网络请求部分非常简单和原始,本篇则是上一篇的进阶,主要讲解如何在vm中使用协程结合Retrofit进行网络框架的封装. GitHub完整版:https://github.co ...

  9. 优雅地实现Android主流图片加载框架封装,可无侵入切换框架

    项目开发中,往往会随着需求的改变而切换到其它图片加载框架上去.如果最初代码设计的耦合度太高,那么恭喜你,成功入坑了.至今无法忘却整个项目一行行去复制粘贴被支配的恐惧.:) 那么是否存在一种方式 能够一 ...

最新文章

  1. 数学系学生的漫画,治愈了整个朋友圈
  2. Logger PatternLayout 格式
  3. Web 趋势榜:上周最热门的 10 大 Web 项目 - 210410
  4. VTK:细胞中心演示用法实战
  5. 信息学奥赛一本通(1050:骑车与走路)
  6. [转载]舌尖上的清华 I
  7. Python Excel到JSON的转换
  8. python支持esc退出_听说你不会用mac电脑装Python?看了这篇文章,秒懂!
  9. matlab2014 下的 libsvm 安装
  10. quartus ii 虚拟管脚设定
  11. PMP考试的打分标准是怎样的?
  12. Oracle中nlssort 中文 排序 用法
  13. 资本市场律师David Cameron作为合伙人加入德汇律师事务所香港办事处
  14. Fiori 动态磁贴示例
  15. FireFox浏览器的about:config参数大全及其具体用途介绍
  16. 《计算机工程》投稿经验分享
  17. 关于MySql使用索引的分析
  18. 看清接收网络数据包的全过程
  19. centos7 离线安装 rar 解压缩软件
  20. php后门检测工具,phpStudy后门如何检测和修复

热门文章

  1. 建筑CAD制图软件中如何快速锁定图层?
  2. go/golang语言编写压力测试
  3. 牛客编程巅峰赛S2第10场 - 青铜白银黄金题解报告
  4. python 小说cms_我用Python实现了一个小说网站雏形
  5. 联发科最新MT6739 Sensor移植资料
  6. Oracle官方文档日记
  7. latex(构建在pdflatex模式下)设置times new roman新罗马字体
  8. 37预备2—leetcode198打家劫舍
  9. Android Studio:使用Camera拍照(三)为相机增加取景蒙板/浮层
  10. Tail Loss Probe实现