IOS -AFNetworking 简介及使用

AFNetworking简介
       AFNetworking是一个 在IOS开发中 使用非常多网络开源库,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档) NSURLConnection NSOperation , 以及其他熟悉的Foundation技术之上。它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松. 
                      IOS -AFNetworking 简介及使用_第1张图片
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文件夹拖入项目工程中去
             IOS -AFNetworking 简介及使用_第2张图片
  
3.添加SystemConfiguration和MobileCoreServices 框架
          IOS -AFNetworking 简介及使用_第3张图片

4.在预编译头文件中添加相关的头文件
  #ifdef __OBJC__
    #import
 
    #import
 
    #import
 
    #import
 
#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,Development,IOS开发)