1、下载 Creating a Download Task
???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]; ?
2、上传 Creating an Upload Task
???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]; ?
3、批量上传 Creating an Upload Task for a Multi-Part Request, with Progress
???NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { ?????????????[formData appendPartWithFileURL:[NSURL fileURLWithPath:@"file://path/to/image.jpg"] name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpeg" error:nil]; ?????????} error:nil]; ???????????AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; ???????????NSURLSessionUploadTask *uploadTask; ?????uploadTask = [manager ???????????????????uploadTaskWithStreamedRequest:request ???????????????????progress:^(NSProgress * _Nonnull uploadProgress) { ???????????????????????// This is not called back on the main queue. ???????????????????????// You are responsible for dispatching to the main queue for UI updates ???????????????????????dispatch_async(dispatch_get_main_queue(), ^{ ???????????????????????????//Update the progress view ???????????????????????????[progressView setProgress:uploadProgress.fractionCompleted]; ???????????????????????}); ???????????????????} ???????????????????completionHandler:^(NSURLResponse * _Nonnull response, id ?_Nullable responseObject, NSError * _Nullable error) { ???????????????????????if (error) { ???????????????????????????NSLog(@"Error: %@", error); ???????????????????????} else { ???????????????????????????NSLog(@"%@ %@", response, responseObject); ???????????????????????} ???????????????????}]; ???????????[uploadTask resume]; ?
4、数据任务 Creating a Data Task
???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]; ?
5、请求参数设置 Request Serialization
Request serializers create requests from URL strings, encoding parameters as either a query string or HTTP body.
???NSString *URLString = @"http://example.com"; ?????NSDictionary *parameters = @{@"foo": @"bar", @"baz": @[@1, @2, @3]}; ?
AFURLSessionManager 上传下载使用
原文地址:http://www.cnblogs.com/jukaiit/p/7465506.html