iOS之AFNetworking:网络请求资源下载至本地
2016-05-03 本文已影响1176人
一只不靠谱的猿_
-
首先大家要导包儿, 在GitHub上面可以找到
-
话不多说直接上干货儿, 具体细节小编全在代码中标注:
//构造资源链接 NSString *urlString = @"http://img1.sc115.com/uploads/sc/jpg/HD/1/204.jpg"; NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; //创建AFN的manager对象 AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration]; //构造URL对象 NSURL *url = [NSURL URLWithString:urlString]; //构造request对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //使用系统类创建downLoad Task对象 NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { NSLog(@"%@", downloadProgress);//下载进度 } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { //返回下载到哪里(返回值是一个路径) //拼接存放路径 NSURL *pathURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil]; return [pathURL URLByAppendingPathComponent:[response suggestedFilename]]; } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { //下载完成走这个block if (!error) { //如果请求没有错误(请求成功), 则打印地址 NSLog(@"%@", filePath); } }]; //开始请求 [task resume];