温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

AFURLSessionManager如何实现上传下载功能

发布时间:2021-07-24 10:58:27 来源:亿速云 阅读:234 作者:小新 栏目:移动开发

这篇文章主要介绍了AFURLSessionManager如何实现上传下载功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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如何实现上传下载功能”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI