AFNetWorking 是一个经常使用的第三方,它是一个轻量级的网络请求API类库,我们也可以通过它来对网络状态进行实时监测。(个人觉得这个第三方比自己以前根据GET 和 POST请求来封装的网络请求更加简单粗暴,喜欢的猿猿们可以对它再次封装哦!!!)
1.GET请求
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:@"网址" parameters:@"字典参数" progress:^(NSProgress *
_Nonnull downloadProgress) {NSLog(@"下载时进度条进度");
} success:^(NSURLSessionDataTask * _Nonnull task, id _NullableresponseObject) {
NSLog(@"成功后回调的 responseObject 就是请求的 NSData 数据");} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@" 请求失败返回的error");}];
2.POST请求
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:@"网址" parameters:@"字典参数" progress:^(NSProgress *
_Nonnull downloadProgress) {NSLog(@"下载时进度条进度");
} success:^(NSURLSessionDataTask * _Nonnull task, id _NullableresponseObject) {
NSLog(@"成功后回调的 responseObject 就是请求的 NSData 数据");} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@" 请求失败返回的error");}];
3.实时监测网络状态
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManagersharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatusstatus) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未识别的网络");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"无网络");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"2G,3G,4G...网络 ");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"wifi网络");
break;
default:
break;
}
}];
[manager startMonitoring];