AFNetworking简单用法

GET请求

 1 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
 2 
 3 [manager GET:URL parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {  
 4 
 5 }     
 6  success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {  
 7 
 8  NSLog(@"这里打印请求成功要做的事");  
 9 
10 }
11 
12 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull   error) {  
13 
14 NSLog(@"%@",error);  //这里打印错误信息
15 
16 }];

POST 请求

 1 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
 2 
 3 
 4 NSMutableDictionary *parameters = @{@"":@"",@"":@""};
 5 
 6 [manager POST:URL parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
 7 
 8 
 9 } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
10 
11 
12 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
13 
14 }];

下载

 1 //1.创建管理者对象
 2 NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
 3 AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];
 4 
 5 //2.确定请求的URL地址
 6 NSURL *url = [NSURL URLWithString:@""];
 7 
 8 //3.创建请求对象
 9 NSURLRequest *request = [NSURLRequest requestWithURL:url];
10 
11 //下载任务
12 NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
13     //打印下下载进度
14     NSLog(@"%lf",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);
15     
16 } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
17     //下载地址
18     NSLog(@"默认下载地址:%@",targetPath);
19     
20     //设置下载路径,通过沙盒获取缓存地址,最后返回NSURL对象
21     NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:response.suggestedFilename];
22     NSLog(@"%@", path);
23     return [NSURL fileURLWithPath:path];
24     
25     
26 } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
27     
28     //下载完成调用的方法
29     NSLog(@"下载完成:");
30     NSLog(@"%@--%@",response,filePath);
31     
32 }];
33 
34 //开始启动任务
35 [task resume];

上传

 1 NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
 2 AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
 3 
 4 NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];
 5 NSURLRequest *request = [NSURLRequest requestWithURL:URL];
 6 
 7 NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
 8 NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
 9     if (error) {
10         NSLog(@"Error: %@", error);
11     } else {
12         NSLog(@"Success: %@ %@", response, responseObject);
13     }
14 }];
15 [uploadTask resume];

监测当前网络状态(网络监听)

1 {
2     // 进行网络监测判断的BOOL值
3     BOOL isOpen;
4 }
 1 if (!isOpen) {
 2     
 3     // 打开网络监测的方法
 4     [[AFNetworkReachabilityManager sharedManager] startMonitoring];
 5     isOpen = YES;
 6     
 7 } else {
 8     
 9     // 关闭网络监测
10     [[AFNetworkReachabilityManager sharedManager] stopMonitoring];
11     isOpen = NO;
12 }
13 
14 // 接下来会判断是WiFi状态,还是3g或4g状态,还有网络不可用状态
15 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
16     
17     switch (status) {
18         case AFNetworkReachabilityStatusUnknown:
19             NSLog(@"未知状态");
20             break;
21             
22         case AFNetworkReachabilityStatusNotReachable:
23             NSLog(@"未连接状态");
24             break;
25             
26         case AFNetworkReachabilityStatusReachableViaWWAN:
27             NSLog(@"手机流量网络");
28             break;
29             
30         case AFNetworkReachabilityStatusReachableViaWiFi:
31             NSLog(@"WiFi状态");
32             break;
33             
34         default:
35             break;
36     }
37 }];
 
原文地址:https://www.cnblogs.com/zhizunbao/p/5536132.html