转:http://blog.csdn.net/andy_jiangbin/article/details/17103041

一直忙于工作,需要资料在网上找到就转发在博客里,今天自己也贡献一点微薄的力量,以备以后自己查阅或需要的人做个参考,文采不好,请见谅。

这个版本就是最近的,项目中用到从官网下载的。

先简单看一下AFNetworking的文件结构。

从这个文件结构中我们可以看到AFNetWorking包含:NSURLConnection,NSURLSession,Security,Reachability,Serialization,UIKit+AFNetworking六大模块,其中AFNetWorking.h是AFNetworking框架的头文件,这个跟xcode里的一些框架结构完全一样,AFNetWorking.h里包含了各模块的头文件如下:

#import <Foundation/Foundation.h>

#import <Availability.h>

#ifndef _AFNETWORKING_

#define _AFNETWORKING_

#import "AFURLRequestSerialization.h"

#import "AFURLResponseSerialization.h"

#import "AFSecurityPolicy.h"

#import "AFNetworkReachabilityManager.h"

#import "AFURLConnectionOperation.h"

#import "AFHTTPRequestOperation.h"

#import "AFHTTPRequestOperationManager.h"

#if ( ( defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >=) || \

( defined(__IPHONE_OS_VERSION_MAX_ALLOWED) &&__IPHONE_OS_VERSION_MAX_ALLOWED >=
) )

#import "AFURLSessionManager.h"

#import "AFHTTPSessionManager.h"

#endif

#endif /* _AFNETWORKING_ */

以后写架构可以借鉴之类写法。

AFNetwoking是基于NSURLConnection实现的,他对NSURLConnection做了扩展,方便程序猿们开发,NSURLConnection的group里包含的文件如下:

AFURLConnectionOperation类是NSOperation的子类,是为了方便实现多线程,AFHTTPRequestOperation又是AFURLConnectionOperation的子类,AFHTTPRequestOperationManager类基本封装了request的所有接口,通过此类可以实现所有的网络请求。

第二个Group是NSURLSession,后续再讲。

第三个Group是Security,是关于安全策略的,后续再讲。

第四个Group是Reachability,从字面意思可以理解,关于网络是否可用的一些接口,后续再讲。

第五个Group是Serialization,是将request序列化,后续再详解。

第六个Group是UIKit+AFNetworking,是对UIKit的一些类的扩展,详细接口如图:

今天先写到这里,明天再继续,争取每个文件,每个函数,每个细节都讲解清楚,如有说错希望指正。

解析AFNetWorking 网络框架(一)的更多相关文章

  1. 解析AFNetWorking 网络框架(二)

    转:http://blog.csdn.net/andy_jiangbin/article/details/17114989 接着前面写. 本帖先讲AFURLConnectionOperation,它是 ...

  2. GJM : Unity3D 常用网络框架与实战解析 【笔记】

    Unity常用网络框架与实战解析 1.Http协议          Http协议                  存在TCP 之上 有时候 TLS\SSL 之上 默认端口80 https 默认端口 ...

  3. Google官方网络框架-Volley的使用解析Json以及加载网络图片方法

    Google官方网络框架-Volley的使用解析Json以及加载网络图片方法 Volley是什么? Google I/O 大会上,Google 推出 Volley的一个网络框架 Volley适合什么场 ...

  4. iOS - AFNetworking 网络请求

    前言 在 iOS 开发中,一般情况下,简单的向某个 Web 站点简单的页面提交请求并获取服务器的响应,用 Xcode 自带的 NSURLConnection 是能胜任的.但是,在绝大部分下我们所需要访 ...

  5. iOS开发之AFNetworking网络编程

    众所周知,苹果搞的一套框架NSContention发送请求与接收请求的方式十分繁琐.操作起来很不方便.不仅要做区分各种请求设置各种不同的参数,而且还要经常在多线程里操作,同时还要对请求与返回的数据做各 ...

  6. 关于Unity的网络框架

    注:Unity 5.1里引入了新的网络框架,未来目标应该是WOW那样的,现在还只是个P2P的架子. 网络的框架,无非是如何管理网络数据的收发,通信双方如何约定协议.之前做的框架与GameObject无 ...

  7. 事件驱动之Twsited异步网络框架

    在这之前先了解下什么是事件驱动编程 传统的编程是如下线性模式的: 开始--->代码块A--->代码块B--->代码块C--->代码块D--->......--->结 ...

  8. Android网络框架源码分析一---Volley

    转载自 http://www.jianshu.com/p/9e17727f31a1?utm_campaign=maleskine&utm_content=note&utm_medium ...

  9. Android中android-async-http开源网络框架的简单使用

    android-async-http开源网络框架是专门针对Android在Apache的基础上构建的异步且基于回调的http client.所有的请求全在UI线程之外发生,而callback发生在创建 ...

随机推荐

  1. socket传输过程

    连接过程: 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认. (1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处 ...

  2. asp.net跳转页面的三种方法比较

    目前,对于学习asp.net的很多朋友来讲,实现跳转页面的方法还不是很了解.本文将为朋友们介绍利用asp.net跳转页面的三种方法,并对其之间的形式进行比较,希望能够对朋友们有所帮助. ASP.NET ...

  3. 安卓app缓存设置

    无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户. Android的apk可以说是作为小型应用,其中99%的应用并不是需要实时更新的,而且诟病于蜗牛 ...

  4. Spring学习总结(2)——Spring IOC的前世今生

    前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...

  5. 使用 JAX-RS 简化 REST 应用开发

    本文将详细介绍 Java EE 6 中所引入的对 JSR-311 (JAX-RS : Java API for RESTful Web Services) 的支持,并通过一个完整的示例应用程序展示 J ...

  6. Centos环境下部署游戏服务器-iptables

    简介:   图1        Centos做为服务器级操作系统,防火墙是不可缺少的.防火墙的主要功能为控制进出网络包,防火墙就如小区门卫的工作职责,检查出入小区居民的身份,如果不符合小区门卫管理条例 ...

  7. Tomcat常见内存溢出的解决办法

    PermGen space错误解决方法 在看下文之前,首先要确认意见事情,就是你是如何启动tomcat的,我们在平时的开发环境当中,都是通过startup.bat方式启动tomcat的,那么你按照下面 ...

  8. Git查看、删除、重命名远程分支和tag【转】

    转自:http://zengrong.net/post/1746.htm 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也 ...

  9. 利用SOLR搭建企业搜索平台 之——配置文件

    运行solr是个很简单的事,如何让solr高效运行你的项目,这个就不容易了.要考虑的因素太多.这里很重要一个就是对solr的配置要了解.懂得配置文件每个配置项的含义,这样操作起来就会如鱼得水! 在so ...

  10. 了解thinkphp(二)

    ThinkPHP的核心文件: Library文件夹下的Think文件夹目录 ThinkPHP的入口文件是: ThinkPHP.php , 我们在创建项目时都要引入这个入口文件!!! 一 , 项目的部署 ...