IOS网络支持库AFNetworking(1)
来源:互联网 发布:linux 赋值 命令结果 编辑:程序博客网 时间:2024/06/06 01:01
以微博为例子:
新建一个数据交互的类继承于NSObject
命名为:AFNetWork.h
判断网络状态:
-(void)reach{ /* AFNetworkReachabilityStatusUnknown = -1 未知 AFNetworkReachabilityStatusNotReachable = 0 无连接 AFNetworkReachabilityStatusReachableViaWWAN = 1 3G网络 AFNetworkReachabilityStatusReachableViaWiFi = 2 wifi */ //它是个单例 //如果要检查网络的状态的变化,必须用检查管理器的单例 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; //检查网络状态 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { NSLog(@"stactus=%ld",status); }];}
ViewController.m
AFNetWork *afnetwork=[[AFNetWork alloc] init];//初始化对象 [afnetwork reach];//调用reach方法上面
[afnetwork getRequestWithUrl:@"这里放请求的URL" WithParameters:@{@"请求参数的key":@"请求的value"}];
-(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) { NSLog(@"responseObject=%@",responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"error=%@",error); }];}
通过代码在微博放内容:
ViewController.m
status:为微博发送内容的接口名字key
value:为内容
[afnetwork postWeiboWithUrl:@"这里放请求的URL" WithParmeters:@{@"请求参数的key":@"请求的value"},@"status":@"1234"}];
-(void)postWeiboWithUrl:(NSString *)urlString WithParmeters:(NSDictionary *)dictionary{ AFHTTPSessionManager *manger=[AFHTTPSessionManager manager]; //返回格式json //这里的到的是JSon数据,默认的responseSerializer也是JSon数据 manger.responseSerializer=[AFJSONResponseSerializer serializer];//这里的代码不要写错 不要写成AFJSONRequestSerializer //得到的是NSData 数据 //manager.responseSerializer=[AFHTTPResponseSerializer serializer]; manger.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json", nil];//接收返回类型 NSURL *url=[NSURL URLWithString:urlString]; [manger POST:url.absoluteString parameters:dictionary progress:^(NSProgress * _Nonnull uploadProgress) { NSLog(@"uploadProgress=%@",uploadProgress); } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"responseObject=%@",responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"error=%@",error); }];}
使用代码子微博发送图片和内容
这张图片是微博API里面的:
-(void)postWeiboWithUrl:(NSString *)urlString WithParmeters:(NSDictionary *)dictionary WithImage:(NSString *)imageName{ AFHTTPSessionManager *manger=[AFHTTPSessionManager manager]; manger.responseSerializer=[AFJSONResponseSerializer serializer]; manger.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json ", nil]; NSURL *url=[NSURL URLWithString:urlString]; [manger POST:url.absoluteString//POST请求 parameters:dictionaryconstructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) { NSData *data=UIImagePNGRepresentation([UIImage imageNamed:@"anglaybaby"]);//图片转data NSData *data1=UIImageJPEGRepresentation([UIImage imageNamed:@"anglaybaby"], 0.5);//参数倍压缩 压缩0.5倍 [formData appendPartWithFileData:data1 name:@"pic"//API对应的名字 fileName:@"a.png"//名字无所谓 mimeType:@"png"];} progress:^(NSProgress * _Nonnull uploadProgress) { NSLog(@"uploadProgress=%@",uploadProgress);} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"responseObject=%@",responseObject);//请求回来的数据} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"error=%@",error);}];}
ViewController.m
//发布内容和图片 [afnetwork postWeiboWithUrl:@"这里放请求的URL" WithParmeters:@{@"请求参数的key":@"请求的value"},@"对应发送内容接口名":@"发送的内容"} WithImage:@"发送的图片名字"];
0 0
- IOS网络支持库AFNetworking(1)
- iOS网络框架 AFNetworking
- ios AFNetworking网络请求
- iOS 网络 - AFNetworking 3.0
- iOS网络-AFNetworking详解
- ios AFNetworking支持https请求
- ios AFNetworking支持https请求
- 第三方网络支持库AFNetworking(终端搭建)
- iOS 网络通信AFNetworking类库
- 【iOS】网络操作与AFNetworking
- ios网络编程之AFNetWorking
- iOS网络操作之AFNetworking
- 【iOS】网络操作与AFNetworking
- 【iOS】网络操作与AFNetworking
- IOS网络操作框架----AFNetworking
- 【iOS】网络操作与AFNetworking
- iOS AFNetworking 取消网络请求
- ios 网络操作与AFNetworking
- IntelliJ-Idea工具的常用快捷键和在html里的常用快捷键
- 我的2015
- LEETCODE 125
- 630A. Again Twenty Five!
- 146.Evaluate the following SQL statement:
- IOS网络支持库AFNetworking(1)
- Spark的TaskScheduler和DagScheduler
- Jenkins + Git + fir 构建并分发 iOS 项目
- iOS 拖动手势
- Tomcat部署不到Web项目
- spring无法创建Bean
- Android editText 隐藏密码框
- 自写:二维码签到程序,功能咋能完善一些?
- Androidt调试汇总(二)极光推送,百度地图