AFNetworking是一个 在iOS开发中 使用非常多网络开源库.它是一个轻量级的网络请求API类库.

适用于iOS以及Mac OS X。它构建于在(Apple iOS开发文档) NSURLConnection ,  NSOperation , 以及其他熟悉的Foundation技术之上。

 

下面的类已从AFNetworking 3.0中废弃:

 

  • AFURLConnectionOperation
  • AFHTTPRequestOperation
  • AFHTTPRequestOperationManager

 

现在核心代码:AFHTTPSessionManager,<AFNrtworking3.1.0目前使用NSURLSession作为网络类!!!!>

它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松。

官方链接http://cocoadocs.org/docsets/AFNetworking/1.3.0/

重要功能梳理:

 

  • 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.在网络可达性测试用监控和响应变化.

     

     

下面我们就来看看AFNetworking的基本使用:

 1 #pragma mark - 网络监测按钮的响应方法
 2 - (IBAction)networkingMonitoringAction:(id)sender {
 3 //isOpen是自己定义的一个Bool值的属性,来切换开关网络检测这一功能.
 4     if (!self.isOpen) {
 5         //打开网络监测
 6         [[AFNetworkReachabilityManager sharedManager] startMonitoring];
 7         self.isOpen = YES;
 8     } else {
 9         //关闭网络监测
10         [[AFNetworkReachabilityManager sharedManager] stopMonitoring];
11         self.isOpen = NO;
12     }
13     //接下来判断当前网络状态:wifi,2G/3G/4G,无网络访问
14     [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
15         switch (status) {
16             case AFNetworkReachabilityStatusUnknown:
17                 NSLog(@"当前网络未知");
18                 break;
19             case AFNetworkReachabilityStatusNotReachable:
20                 NSLog(@"当前无网络访问");
21                 break;
22             case AFNetworkReachabilityStatusReachableViaWWAN:
23                 NSLog(@"当前手机流量网络");
24                 break;
25             case AFNetworkReachabilityStatusReachableViaWiFi:
26                 NSLog(@"当前wifi连接网络");
27                 break;
28                 
29             default:
30                 break;
31         }
32     }];
33 }
网络状态检测

相关文章: