IOS -AFNetworking 简介及使用

时间:2014-05-04 17:39:27   收藏:0   阅读:530
AFNetworking简介
       AFNetworking是一个在IOS开发中使用非常多网络开源库,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档)NSURLConnectionNSOperation,以及其他熟悉的Foundation技术之上。它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松. 
                      bubuko.com,布布扣
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文件夹拖入项目工程中去
             bubuko.com,布布扣
  
3.添加SystemConfiguration和MobileCoreServices 框架
          bubuko.com,布布扣

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

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!