zoukankan      html  css  js  c++  java
  • 解析AFNetWorking 网络框架(一)

    转: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 >=1090) ||

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

    #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的一些类的扩展,详细接口如图:

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


  • 相关阅读:
    python3之微信文章爬虫
    selenium不提供修改请求headers、获取响应headers的功能
    dos/bat/cmd相关知识的三个层面
    python处理xml的常用包(lib.xml、ElementTree、lxml)
    python列表操作总结
    从哪些层面评价编程语言
    Windows环境下python多版本配置方案
    一个urllib2构建的html下载器的代理组件的实现方案
    python-selenium实现的简易下载器,并常见错误解决
    python环境配置selenium与IE、Chrome、Firefox、PhantomJS
  • 原文地址:https://www.cnblogs.com/jackljf/p/4768589.html
Copyright © 2011-2022 走看看