AFNetworking用法及网络监测
来源:互联网 发布:折800淘宝女装 编辑:程序博客网 时间:2024/06/04 18:11
AFNetworking github : https://github.com/AFNetworking/AFNetworking
Reachability github : https://github.com/tonymillion/Reachability
先分别介绍一下 AFN 和 Reachability 如何进行网络监测
#import "AFNetworkReachabilityManager.h" // 如果要检测网络状态的变化,必须用检测管理器的单例的startMonitoring [[AFNetworkReachabilityManager sharedManager] startMonitoring]; // 检测网络连接的单例,网络变化时的回调方法 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { NSLog(@"%ld",status); }]; // 几种不同的网络状态 /* AFNetworkReachabilityStatusUnknown = -1, // 未知 AFNetworkReachabilityStatusNotReachable = 0, // 无连接 AFNetworkReachabilityStatusReachableViaWWAN = 1, // 无线 AFNetworkReachabilityStatusReachableViaWiFi = 2, // WiFi */
ps : 由于检测网络有一定的延迟,所以如果启动app立即去检测调用[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus 有可能得到的是status == AFNetworkReachabilityStatusUnknown;但是此时明明是有网的,建议在收到监听网络状态回调以后再取[AFNetworkReachabilityManager sharedManager].networkReachabilityStatus。
Reachability
添加框架:SystemConfiguration.framework#import "Reachability.h"-(BOOL)isConnectionAvailable{ BOOL isExistenceNetwork = YES; Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"]; switch ([reach currentReachabilityStatus]) { case NotReachable: isExistenceNetwork = NO; //NSLog(@"notReachable"); break; case ReachableViaWiFi: { isExistenceNetwork = YES;// UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"5毛 wifi 5毛 wifi" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];// alert.delegate = self;// [alert show]; } break; case ReachableViaWWAN: isExistenceNetwork = YES; //NSLog(@"3G"); break; } if (!isExistenceNetwork) { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"没有网络连接" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:nil, nil]; alert.delegate = self; [alert show]; return NO; } return isExistenceNetwork;}
如果需要实时的网络状态变化通知,需要用到异步的方式
具体请看: http://www.bubuko.com/infodetail-650914.html
AFNetworking 用法
//GET请求 #import"AFHTTPRequestOperationManager.h"// 1 初始化AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];// 2 设置返回数据类型 manager.responseSerializer = [AFHTTPResponseSerializer serializer];// 3 请求 [manager GET:@"网址字符串" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { // 请求成功代码 } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 请求失败代码 }];其中请求成功的话,就可以直接进行JSON解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@",dict);//POST请求 #import"AFHTTPRequestOperationManager.h"// 1 初始化AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];// 2 设置返回数据类型 manager.responseSerializer = [AFHTTPResponseSerializer serializer];// 3 请求 [manager POST:@"网址字符串" parameters:dict //参数字典 success:^(AFHTTPRequestOperation *operation, id responseObject) { // 请求成功代码 } failure:^(AFHTTPRequestOperation *operation, NSError *error) { // 请求失败代码 }];其中请求成功的话,就可以直接进行JSON解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@",dict);/*注意:1 AFNetworking可以进行JSON数据解析/Plist数据解析.(不支持XML数据解析)2 URL字符串中如果有特殊字符或者中文字符,AFNETWorking并没有做UTF8的转码,需要:url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; */
1 0
- AFNetworking用法及网络监测
- AFnetworking监测网络变化
- 使用AFNetworking进行网络状态的监测
- [AFNetworking练习3]监测网络链接状态
- iOS 多线程编程<十八、AFNetworking网络监测>
- iOS 开发 AFNetworking实现网络状态的实时监测
- Reachability 和AFNetWorking 第三方框架对网络的监测
- AFNetWorking用法及缓存处理
- AFNetWorking用法及缓存处理
- AFNetWorking用法及缓存处理
- AFNetWorking用法及缓存处理
- libpcap简介及网络监测系统
- 使用netstat检测及监测网络连接
- 使用netstat检测及监测网络连接
- Leaks监测AFNetWorking内存泄漏
- 网络监测
- 网络监测
- 网络监测
- context:property-placeholder
- POJ 3352 Road Construction
- 【Leetcode】Remove Duplicates from Sorted List II
- 一个优化的查找姓名首字母相同的方法
- iOS 字典转模型
- AFNetworking用法及网络监测
- 极限学习机(Extreme Learning Machine)
- Easyui后台管理界面设计
- 用Swing写个scrapy爬虫图形界面
- Introducing IPython Notebook
- javascript两种禁止一个函数没有运行结束时就再次调用的方法
- 偶有所感
- 昌大软院大神养成计划之网页设计之路第二天
- <5> go 上下文传递context