参考博客:Alamofire Tutorial: Getting Started
Alamofire是Swift的HTTP网络工具包,相当于Swift实现AFNetworking版本。通过一个名叫PhotoTagger的Demo,你将学会如何使用Alamofire进行基本网络操作。Demo中,你将上传图片到第三方服务Imagga API,并让Imagga API为你的图片加上标签和配色。
用Cocoapods导入Alamofire的时候,Terminal显示成功,但是当我import Alamofire的时候,出现了Cannot load underlying module for 'Alamofire'的问题。一开始我以为是cocoapods版本问题,查看版本是对的;我又按照Cannot load underlying module for 'Alamofire' · Issue #441 · Alamofire/Alamofire · GitHub上说的,重新导入Alamofire,还是不对。最后,发现是一个很简单的错误。cmd+B就可以了import Alamofire了。
#1 安装Alamofire
打开Podfile,将里面代码替换成如下。Alamofire后面可以不用跟版本号,pod自己会知道那是Alamofire的最新版本的。
在终端里:pod install
#2 Alamofire基本用法
1.发送基本请求
responseJSON是从服务端返回的JSON数据,除此之外,Alamofire还支持普通数据,字符串和plist形式的返回。
2.上传文件
3.下载文件
4.HTTP验证
5.HTTP响应状态信息识别
6.调试状态
#3 REST, JSON,HTTP简介
1.HTTP:是一种网络传输协议。它定义了这几种请求方法:
--GET用于获取数据
--HEAD类似GET,但只能获取header,不能获取实际数据
--POST将数据发送到服务器
--PUT将数据发送到一个具体位置
--DELETE将数据从一个具体位置删除
2.REST全称是REpresentational State Transfer,指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们称它为RESTful架构。这些规则包括:不保持请求状态,缓存请求,提供独特的接口。这使得app开发者集成API时不用跟踪请求的数据状态。
3.JSON全称是Javascript Object Notation,是一种轻量级的数据交换语言,以文字为基础,易于阅读。它的数据类型有限。Apple提供NSJSONSerialization类来将对象转化为JSON等格式
#4 为什么要使用Alamofire
Alamofire是以NSURLSession为基础的,但是相比NSURLSession,它更简短,逻辑更清晰。Alamofire有这几个主要功能:上传,下载,请求。这些功能的作用域是module,而不是class和struct。
#5 上传文件
1.格式转换。保证Imagga API得到正确的格式。
2.因为Alamofire是异步的,所以你的UI更新也要以异步的方式。
3.导入Alamofire,并调用upload方法。
找到uploadImage方法,并添加以下代码.思路是:
上传成功--计算上传进度--检查response是否成功--检查response的每一部分,确保类型正确--上传完成,清空数组
上传失败--输出encodingError
#6 获取数据
1.获取tags
2.获取colors
3.更新upload()的completion handler方法
完成!!!