AFNetworking 简介及使用

来源:互联网 发布:史崔克装甲车数据 编辑:程序博客网 时间:2024/05/16 09:17

一 AFNetworking 简介

        AFNetworking是一个 在IOS开发中 使用非常多网络开源库,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档) NSURLConnection ,  NSOperation , 以及其他熟悉的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: 以方便上层使用。

0 0
原创粉丝点击