您的位置:首页 > 移动开发 > IOS开发

AFNetworking阅读(一)

2016-06-21 21:26 225 查看
     第一次进行源码的阅读,AFNetWorking在工作中最为常用,先写AFNetworking的阅读笔记。

这是我的问题

版本:使用的AFNetworking为3.0版本?版本之间的差异有有哪些?
AFNetworking的作用?
怎样使用AFNetworking?
AFNetworking和ASI对比?

解决问题     
 版本:使用的AFNetworking为3.0版本?版本之间的差异有有哪些?

        
          通过查看资料知道:
AFNetworking 1.0建立在NSURLConnection的基础API之上 ,AFNetworking 2.0开始使用NSURLConnection的基础API ,以及较新基于NSURLSession的API的选项。 AFNetworking 3.0现已完全基于NSURLSession的API,这降低了维护的负担,同时支持苹果增强关于NSURLSession提供的任何额外功能。苹果的API已经废弃了NSURLConnection,所以我们将AFNetworking需要进行3.0的迁移。
AFNetworking
3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7。

  AFNetworking的作用?
             我们一般的作用是实现数据请求和文件上传下载,断点续传的功能。

怎样使用AFNetworking?
            在Applegate中做以下处理:
             
  /**

     NSURLCache
为您的应用的 URL
请求提供了内存中(对应memoryCapacity)以及磁盘上(对应diskCapacity)的综合缓存机制。所以你想使用NSURLCache带来的好处,就需要在此处设置一个sharedURLCache。

     */

    NSURLCache
*URLCache = [[NSURLCache
alloc]
initWithMemoryCapacity:4
*
1024 *
1024 diskCapacity:20
*
1024 *
1024 diskPath:nil];

     [NSURLCache
setSharedURLCache:URLCache];
                       
 
#pragma mark -
当你有session task正在运行时,这个小菊花就会转啊转。这个是自动检测的。
        


    [[AFNetworkActivityIndicatorManager
sharedManager]
setEnabled:YES];

       封装一个类HTTPTool继承自
AFHTTPSessionManager,提供一个类方法和一个网络请求方法
       


在.m文件中,单例模式简单封装一下,在别的地方可以随时调用啦。
+(instancetype)shareTool

{

    static
HttpTool *_shareTool =
nil;

    static
dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        //
初始化shareTool的base url,此处为@"https://api.app.net/"

        _shareTool = [[self
alloc]
initWithBaseURL:[NSURL
URLWithString:kBaseURL]];

        // 
设置HTTP Client的安全策略为AFSSLPinningModeNone

        _shareTool.securityPolicy
= [AFSecurityPolicy
policyWithPinningMode:AFSSLPinningModeNone];

       

    });

   

    return
_shareTool;
}

知识点:SSL Pining

Https对比Http已经很安全,但在建立安全链接的过程中,可能遭受中间人攻击。防御这种类型攻击的最直接方式是Client使用者能正确鉴定Server发的证书【目前很多浏览器在这方面做的足够好,用户只要不在遇到警告时还继续其中的危险操作】,而对于Client的开发者而言,一种方式保持一个可信的根证书颁发机构列表,确认可信的证书,警告或阻止不是可信根证书颁发机构颁发的证书。

SSL Pinning其实就是证书绑定,一般浏览器的做法是信任可信根证书颁发机构颁发的证书,但在移动端应用只和少数的几个Server有交互,所以可以做得更极致点,直接就在应用内保留需要使用的具体Server的证书。在安全策略中有些,后续将会提及到。

AFNetworking和ASI对比? 



AFN:使用简单,自带了网络监控功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 源码阅读