移动互联网技术分享Objective C开发iOS学习笔记

Alamofire总结及应用

2016-08-29  本文已影响274人  Magenta_she

参考博客: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了。

simulator

Demo地址:GitHub - Paganarchitect/iOS_tutorial_exercises_RayWenderlich: iOS exercises based on Ray Wenderlich tutorial

#1 安装Alamofire

打开Podfile,将里面代码替换成如下。Alamofire后面可以不用跟版本号,pod自己会知道那是Alamofire的最新版本的。

Podfile

在终端里:pod install

安装成功

#2 Alamofire基本用法

1.发送基本请求

发送最基本的GET请求 为请求添加参数,处理响应信息

responseJSON是从服务端返回的JSON数据,除此之外,Alamofire还支持普通数据,字符串和plist形式的返回。

2.上传文件

上传文件到服务器 获取上传进度 支持multipartFormData形式的表单数据上传

3.下载文件

下载文件 设置默认的下载位置 检测下载进度

4.HTTP验证

authenticate方法

5.HTTP响应状态信息识别

手动识别 自动识别。自动认为200..<300的statusCode正常

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得到正确的格式。

ViewController.swift

2.因为Alamofire是异步的,所以你的UI更新也要以异步的方式。

ViewController.swift

3.导入Alamofire,并调用upload方法。

找到uploadImage方法,并添加以下代码.思路是:

上传成功--计算上传进度--检查response是否成功--检查response的每一部分,确保类型正确--上传完成,清空数组

上传失败--输出encodingError

ViewControllers.swift

#6 获取数据

1.获取tags

获取tags

2.获取colors

获取colors

3.更新upload()的completion handler方法

更新completion handler方法

完成!!!

上一篇下一篇

猜你喜欢

热点阅读