美文网首页
关于 AFNetworking(3.0)的问题

关于 AFNetworking(3.0)的问题

作者: Kingsleeeey | 来源:发表于2016-09-23 14:17 被阅读0次

    1.GET Request

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    
    [manager GET:@"http://example.com/resources.json" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress){
    
    }success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject){
    
    }failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error){
    
    }];
    

    2.POST URL-Form-Encoded Request

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    
    NSDictionary *parameters = @{@"key": @"value"};
    
    [manager POST:@"http://example.com/resources.json" parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
    
    } success:^(NSURLSessionDataTask * _Nonnull task,id_Nullable responseObject) {
    
    } failure:^(NSURLSessionDataTask * _Nullable task,NSError * _Nonnull error) {
    
    }];
    

    3.Download

    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];
    

    4.Upload

    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];
    

    5.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 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];
    
    关于 AFNetworking(3.0+)的问题,先总结到这里,后续会更新。

    相关文章

      网友评论

          本文标题:关于 AFNetworking(3.0)的问题

          本文链接:https://www.haomeiwen.com/subject/flptyttx.html