2016 - 1 - 24 NSURLSession(一)

mac2022-06-30  35

一: NSURLSession简介

      1.实施步骤

   1.1 使用 NSURLSession对象 创建TASK ,然后执行TASK

2.TASK的类型:

 

二: NSURLSession的简单使用:

- (void)download{ NSURL*url = [NSURL URLWithString:@"http://120.25.226.186:32812/resources/images/minion_15.png"]; // NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSURLSession *session = [NSURLSession sharedSession]; // 创建TASK 下载到location中 NSURLSessionDownloadTask *tast = [session downloadTaskWithURL:url completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"%s",__func__); NSFileManager *fileManger = [NSFileManager defaultManager]; // 设置下载的文件路径和文件名 NSString *file = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:response.suggestedFilename]; [fileManger moveItemAtURL:location toURL:[NSURL fileURLWithPath:file] error:nil]; NSLog(@"%@",file); }]; [tast resume]; }

 

三: NSURLSession 的代理

   需要注意在接受到响应的代理方法中设置允许处理服务器响应

- (void)delegate{ NSURL*url = [NSURL URLWithString:@"http://120.25.226.186:32812/resources/images/minion_15.png"]; // NSURLRequest *request = [NSURLRequest requestWithURL:url]; // Configuration 配置外形 NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue alloc] init]]; NSURLSessionDataTask *task = [session dataTaskWithURL:url]; [task resume]; } // 接收到到相应调用的代理方法 - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler{// Dispositon 处置 NSLog(@"%s",__func__); // 允许处理服务器相应, completionHandler(NSURLSessionResponseAllow); } - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data{ NSLog(@"%s",__func__); } - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error{ NSLog(@"'%@",error); NSLog(@"%s",__func__); }

 

 

 

 

转载于:https://www.cnblogs.com/BJTUzhengli/p/5156089.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)