AFNetworking慢慢整理

来源:互联网 发布:笔记 软件 编辑:程序博客网 时间:2024/06/06 04:18

头文件

    #import "AFURLRequestSerialization.h"    #import "AFURLResponseSerialization.h"    #import "AFSecurityPolicy.h"    #import "AFNetworkReachabilityManager.h"    #import "AFURLSessionManager.h"    #import "AFHTTPSessionManager.h"

AFURLSessionManager

- (void)dataTask{    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];    NSURL *URL = [NSURL URLWithString:@"http://httpbin.org/get"];    NSURLRequest *request = [NSURLRequest requestWithURL:URL];    NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {        if (error) {            NSLog(@"Error: %@", error);        } else {            NSLog(@"%@ %@", response, responseObject);        }    }];    [dataTask resume];}
- (void)uploadTask{    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];    NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];    NSURLRequest *request = [NSURLRequest requestWithURL:URL];    NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];    NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {        if (error) {            NSLog(@"Error: %@", error);        } else {            NSLog(@"Success: %@ %@", response, responseObject);        }    }];    [uploadTask resume];}
- (void)downloadTask{    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];    NSURL *URL = [NSURL URLWithString:@"http://example.com/download.zip"];    NSURLRequest *request = [NSURLRequest requestWithURL:URL];    NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {        NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];        return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {        NSLog(@"File downloaded to: %@", filePath);    }];    [downloadTask resume];}

AFHTTPSessionManager

继承AFURLSessionManager

  AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    [manager GET:@"http://httpbin.org/get" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {         NSLog(@"%@", responseObject);    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {         NSLog(@"Error: %@", error);    }];

AFNetworkReachabilityManager.h

判断当前是什么网络状态

 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {        NSLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));    }];    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
0 0