iOS AFNetworking基本使用
2016-04-13 12:01
441 查看
AFNetworking:GitHub
创建一个类继承 :NSObject 类 要用的时候直接调用就行使用AFNetwork来检测网络状态
-(void)reach { /* AFNetworkReachabilityStatusUnknown = -1, 未知 AFNetworkReachabilityStatusNotReachable = 0, 未连接 AFNetworkReachabilityStatusReachableViaWWAN = 1, 3G AFNetworkReachabilityStatusReachableViaWiFi = 2, WIFI */ //如果要检测网络状态的变化,必须用检测管理器的单例 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { NSLog(@"status = %ld",status); }]; }
使用AFNetwork 的 GET方法 获取信息
-(void)getRequestWithUrl:(NSString *)urlString WithParameters:(NSDictionary *)dictionary { NSURL *url = [NSURL URLWithString:urlString]; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [manager GET:url.absoluteString parameters:dictionary progress:^(NSProgress * _Nonnull downloadProgress) { NSLog(@"下载 = %@",downloadProgress); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { //通知 [[NSNotificationCenter defaultCenter] postNotificationName:@"center" object:nil userInfo:responseObject]; } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"错误 = %@",error); }]; }
使用AFNetwork 的 POST 上传纯文本信息
-(void)postWeiboWithUrl:(NSString *)urlString WithParameters:(NSDictionary *)dictionary { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //返回格式 //这里得到的是 JSon 数据,默认的 responseSeroalizer 也是 JSon 数据 manager.responseSerializer = [AFJSONResponseSerializer serializer]; //得到的是 NSData 数据 // manager.responseSerializer = [AFHTTPResponseSerializer serializer]; //接受一些类型 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", nil]; NSURL *url = [NSURL URLWithString:urlString]; [manager POST:url.absoluteString parameters:dictionary progress:^(NSProgress * _Nonnull uploadProgress) { NSLog(@"上传 = %@",uploadProgress); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"响应 = %@",responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"错误 = %@",error); }]; }
使用AFNetwork 的 POST 方法 上传文本和图片
-(void)postWeiboWithUrl:(NSString *)urlString WithParameters:(NSDictionary *)dictionary WithImageName:(NSString *)imageName { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", nil]; NSURL *url = [NSURL URLWithString:urlString]; [manager POST:url.absoluteString parameters:dictionary constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { NSData *data = UIImagePNGRepresentation([UIImage imageNamed:@"voiceChange"]); // NSData *data1 = UIImageJPEGRepresentation([UIImage imageNamed:@"voiceChange"], 0.5); [formData appendPartWithFileData:data name:@"pic" fileName:@"测试.png" mimeType:@"png"]; } progress:^(NSProgress * _Nonnull uploadProgress) { NSLog(@"上传 = %@",uploadProgress); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"响应 = %@",responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"错误 = %@",error); }]; }
这还有很多功能 我就不一一介绍了。
相关文章推荐
- 移动开发:iOS开发者的Apple Pay编程指南
- 初识ios自动化(一)
- [正则表达式]iOS中3种正则表达式的使用与比较
- iOS开发之tableView点击下拉扩展与内嵌collectionView上传图片效果
- iOS 模态跳转与返回
- IOS开发多线程篇—GCD介绍
- ionic cordova 控制iOS状态栏的显示,隐藏,颜色
- IOS开发多线程篇—GCD介绍
- 【ios开发】教你如何建一个小的model,来接受后台传过来的字典或者数组
- iOS开发之触摸事件
- iOS资源大全
- c#后台 极光推送到Android 和IOS客户端
- iOS 真机测试提示框处理
- include<stdio.h> 和include<iostream.h>的区别
- iOS 真机测试的提示框
- ios7之后屏幕右滑返回
- iOS7以后导航栏按钮颜色问题
- iOS常用系统调用
- IOS使用Jenkins进行持续集成
- iOS获取设备型号、设备类型等信息