AFNetworking阅读(一)

     第一次进行源码的阅读,AFNetWorking在工作中最为常用,先写AFNetworking的阅读笔记。

  • 这是我的问题

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

  • 解决问题     
  1.  版本:使用的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。


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

  1. 怎样使用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的证书。在安全策略中有些,后续将会提及到。

  1. AFNetworking和ASI对比? 

AFN:使用简单,自带了网络监控功能
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值