IOS -AFNetworking 简介及使用

一AFNetworking简介

AFNetworking是一个在IOS开发中使用非常多网络开源库,适用于iOS以及Mac
OS X. 它构建于在(apple ios开发文档)NSURLConnectionNSOperation,以及其他熟悉的Foundation技术之上。它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松.

AFURLConnectionOperation:继承自
NSOperation 实现了NSURLConnection 的代理方法.

AFHTTPRequestOperation:
 继承自 AFURLConnectionOperation的子类,当request请求使用的协议为HTTP和HTTPS时使用,它封装了用于决定request是否成功的状态码和内容类型.

AFJSONRequestOperation:
 继承自AFHTTPRequestOperation,用于下载和处理json response数据.

AFXMLRequestOperation:继承自AFHTTPRequestOperation,用于下载和处理xml
response数据.

AFPropertyListRequestOperation:继承自AFHTTPRequestOperation,用于下载和处理property
list
 response数据.

AFHTTPClient:是一个封装了基于http协议的网络应用程序的公共交流模式.包含

1.发起基于根路径的使用基本的url相关路径来只做request

2.为request自动添加设置http headers.

3.使用http 基础证书或者OAuth来验证request

4.为由client制作的requests管理一个NSOperationQueue

5.从NSDictionary生成一个查询字符串或http bodies.

6.从request中构建多部件

7.自动的解析http response数据为相应的表现数据

8.在网络可达性测试用监控和响应变化.

注: 官方使用文档说明: 
 http://cocoadocs.org/docsets/AFNetworking/1.3.0/

二 加载到开发环境中

1.下载AFNetworking

https://github.com/AFNetworking/AFNetworking

2.解压后将AFNetWorking文件夹拖入项目工程中去

3.添加SystemConfiguration和MobileCoreServices 框架

4.在预编译头文件中添加相关的头文件

#ifdef __OBJC__

#import <UIKit/UIKit.h>

#import <Foundation/Foundation.h>

#import <SystemConfiguration/SystemConfiguration.h>

#import <MobileCoreServices/MobileCoreServices.h>

#endif

注意:该类库需要在 ARC 的环境下 ,在非ARC 的工程中 ,添加 -fobjc-arc

四 使用代码

    详见:  https://github.com/ZhangzheBJUT/IOSProject/tree/master/NetworkTool

ZZUtilNetWork.h和ZZUtilNetWork.m是对AFNetworking使用简单封装。

五 小结

AFNetworking的基础部分是 AFURLConnectionOperation,它是一个 NSOperation subclass,网络部分由 NSURLConnection 完成,实现了
NSURLConnection 相关的代理方法,然后利用 NSOperation 的 state (isReady→isExecuting→isFinished) 变化来进行网络控制。网络请求是在一个指定的线程(networkRequestThread)完成。

AFURLConnectionOperation 是一个很纯粹的网络请求 operation,可以对他进行 start/cancel/pause/resume 操作,可以获取对应的 NSURLRequest 和 NSURLResponse 数据。支持 NSInputStream/NSOutputStream,提供了 uploadPress 和 downloadProgress 以方便其他使用。

AFHTTPRequestOperation 是 AFURLConnectionOperation 的子类,针对 HTTP+HTTPS 协议做了一层封装,比如 statusCode、Content-Type 等,添加了请求成功和失败的回调 block,提供了
addAcceptableContentTypes: 以方便上层使用。

IOS -AFNetworking 简介及使用,布布扣,bubuko.com

时间: 2024-10-25 21:34:08

IOS -AFNetworking 简介及使用的相关文章

【IOS 开发】IOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

一. IOS 项目简介 1. IOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源; (1) HelloWorld 目录 HelloWorld 目录介绍 : -- 命名规则 : 该目录名称与 IOS 项目名称相同, 是主目录; -- 存放内容 : IOS 项目的 源码文件, 界面设计文件, 资源文件都存放在该目录下; -- 源文件 : Objective C 的 .m 和

iOS AFNetworking的使用

AFNetworking几乎是iOS上最常用的HTTP库了,AFNetworking也确实用起来简单,重要的API就那么几个,但是就那么几个就足够用了.下面介绍几个AFNetworking 2.x重要的API. 如果你要支持iOS6那么你应该要使用基于NSURLConnection封装的AFHTTPRequestOperationManager(推荐用manager,尽管用AFHTTPRequestOperation也可以). GET请求 AFHTTPRequestOperationManage

iOS: AFNetworking手动配置(iOS7.1, AF2.2.4)

一.下载AFNetworking. 二.将AFNetworking-master下的AFNetworking目录拖入到项目中 三.为项目添加Linking to a Library or Framework CoreLocation.framework SystemConfiguration.framework Security.framework MobileCoreServices.framework 四.修改项目.pch文件 1 #ifdef __OBJC__ 2 #import <UIK

【转】GitHub 排名前 100 的安卓、iOS项目简介

GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这 个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 Re

2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)

排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web 应用和 Native 应用的

GitHub 排名前 100 的安卓、iOS项目简介

GitHub Android Libraries Top 100 简介 转自:http://www.devstore.cn/essay/essayInfo/6485.html 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库. 项目名称 项目简介 1. react-native 这个是 Faceboo

iOS AFNetworking框架HTTPS请求配置

iOS在Apple公司的强制要求下,数据传输必须按照ATS(App Transefer Security)条款.关于AFNetworking框架传输HTTPS数据. 一.AllowsArbitraryLoads 白名单机制 NSAllowsArbitraryLoads是ATS推广过程中的产物,当然也许可持续很久甚至永久,为了访问HTTP服务,一般需要绕过ATS限制,需要配置info.plist文件 <key>NSAppTransportSecurity</key>  <dic

iOS AFNetworking 3.0以上使用

在Xcode7.0之后,苹果废弃了NSURLConnection方法,数据请求使用NSURLSession,作为网络请求类第三方库使用量最大的AFN也及时的更新的新的版本--AFN 3.0版本.新的版本的里废弃了基于NSURLConnection封装的AFHTTPRequestOperationManager,转而使用基于NSURLSession封装的AFHTTPSessionManager了. 下面将详细介绍AFN3.0的使用 1.cocoapods导入AFN 3.0 1.1 进入到工程目录下

iOS AFNetworking 2.x JSON方法

写在前面(废话,可略过) 又是好久没更新,主要是忙(懒).争取多学习,多分享! 正式开始 我们在开发的过程中,难免会遇到网络操作,我们可以使用iOS原装的网络框架,当然了,使用三方框架更容易些,非常出名的就是AFNetworking框架,这个框架貌似还是12年最佳三方框架.总之,iOS开发,网络部分,基本都会用到这个框架. 这个框架在github上,AFNetworking 传送门 --> 点我点我 如果使用此框架的1.x版本,在JSON解析方面使用的某一个API,但是在2.x以后,AFNetw