AFNetWorking3.0

Get请求:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
[manager GET:URL parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {

} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 

NSLog(@"这里打印请求成功要做的事"); 

}failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

NSLog(@"%@",error);  //这里打印错误信息

 }];

Post请求: 

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSMutableDictionary *parameters = @{@"":@"",@"":@""};
[manager POST:URL parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {


} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

}];


- (void)downLoad{  //1.创建管理者对象 
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];  //2.确定请求的URL地址 
NSURL *url = [NSURL URLWithString:@""];  //3.创建请求对象
   NSURLRequest *request = [NSURLRequest requestWithURL:url];  //下载任务 
NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {  //打印下下载进度 

WKNSLog(@"%lf",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);

} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {  //下载地址WKNSLog(@"默认下载地址:%@",targetPath);  //设置下载路径,通过沙盒获取缓存地址,最后返回NSURL对象 
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]; return [NSURL URLWithString:filePath]; } 


completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {  //下载完成调用的方法 WKNSLog(@"下载完成:");
WKNSLog(@"%@--%@",response,filePath); }
];  //开始启动任务 

[task resume];

}



- (void)upLoad1{  //1。创建管理者对象 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];  //2.上传文件    NSDictionary *dict = @{@"username":@"1234"};
NSString *urlString = @"22222";
[manager POST:urlString parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {  //上传文件参数  UIImage *iamge = [UIImage imageNamed:@"123.png"]; 
NSData *data = UIImagePNGRepresentation(iamge);  //这个就是参数 
[formData appendPartWithFileData:data name:@"file" fileName:@"123.png" mimeType:@"image/png"];
} progress:^(NSProgress * _Nonnull uploadProgress) {  //打印下上传进度 WK
NSLog(@"%lf",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount); 
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {  //请求成功
  WK
NSLog(@"请求成功:%@",responseObject); 
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//请求失败 WKNSLog(@"请求失败:%@",error); }];
}//第二种是通过URL来获取路径,进入沙盒或者系统相册等等
 - (void)upLoda2{  //1.创建管理者对象 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];  //2.上传文件NSDictionary *dict = @{@"username":@"1234"}; 
NSString *urlString = @"22222";
[manager POST:urlString parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFileURL:[NSURL fileURLWithPath:@"文件地址"] name:@"file" fileName:@"1234.png"mimeType:@"application/octet-stream" error:nil];
} progress:^(NSProgress * _Nonnull uploadProgress) {  //打印下上传进度
  WKNSLog(@"%lf",1.0 *uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { 
//请求成功 WKNSLog(@"请求成功:%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
//请求失败 WKNSLog(@"请求失败:%@",error); }];
}

//检测网络:

- (void)AFNetworkStatus{  //1.创建网络监测者 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];  /*枚举里面四个状态 分别对应 未知 无网络 数据 
WiFi typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { 
AFNetworkReachabilityStatusUnknown = -1, 未知 
AFNetworkReachabilityStatusNotReachable = 0, 
无网络 AFNetworkReachabilityStatusReachableViaWWAN = 1, 
蜂窝数据网络 AFNetworkReachabilityStatusReachableViaWiFi = 2, WiFi 
}; */ 
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {  //这里是监测到网络改变的block 可以写成switch方便  //在里面可以随便写事件 
switch (status) {
case AFNetworkReachabilityStatusUnknown: WKNSLog(@"未知网络状态"); 
break; 
case AFNetworkReachabilityStatusNotReachable: WKNSLog(@"无网络");  break;
case AFNetworkReachabilityStatusReachableViaWWAN: WKNSLog(@"蜂窝数据网");  break; 
case AFNetworkReachabilityStatusReachableViaWiFi: WKNSLog(@"WiFi网络");  break; 
default:  break; } 
}] ;
}

posted @ 2017-03-31 14:31  fuchaowen  阅读(111)  评论(0编辑  收藏  举报