首页 > 系统 > Android > 正文

AFURLSessionManager 上传下载使用代码说明

2019-12-12 02:06:43
字体:
来源:转载
供稿:网友

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 上传下载使用代码说明,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表