虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > AFURLSessionManager 上传下载使用代码说明

AFURLSessionManager 上传下载使用代码说明
类别:Android编程   作者:码皇   来源:互联网   点击:

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

相关热词搜索: afurlsessionmanager 上传下载