一:利用 AFN 监测网络状态
AFNetworkReachabilityManager ,网络状态改变之后,会调用一个 Block ReachabilityStatusChangeBlock
#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
// 1.实例化网络状态检测类
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
// status 当前的网络状态
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
// 在里面做网络状态改变之后的操作.
// AFNetworkReachabilityStatusUnknown 未知的网络状态
// AFNetworkReachabilityStatusNotReachable 没有网络
// AFNetworkReachabilityStatusReachableViaWWAN 蜂窝移动网络/3G/4G
// AFNetworkReachabilityStatusReachableViaWiFi WIFI环境
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知的网络状态");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"没有网络,提示用户请连接网络");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"蜂窝移动网络 3G/4G");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI 状态!");
break;
default:
break;
}
}];
// 开始监测网络状态
[manager startMonitoring];
}
@end
二:AFN框架下支持HTTPS
HTTPS = HTTP + SSL(安全套接字层)
#import "ViewController.h"
#import "AFNetworking.h" //导入第三方框架AFN
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
// 信任证书,支持 https
manager.securityPolicy.allowInvalidCertificates =YES;
// 发送请求
[manager GET:@"https://mail.qq.cn" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
//
NSLog(@"responseObject:%@",[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//
NSLog(@"error:%@",error);
}];
}
@end