NSURLSession

转载 2015年11月19日 14:33:25


转载自:http://m.blog.csdn.net/blog/lsc19890723/40953983

快一年左右未在CSDN上发表新文章了,基本上都保存在自己的本地。难得闲下来,还是将自己的一些资料发布到网上供大家一起交流,参考。

        NSURLSession是苹果一种HTTP网络请求方式,想必有经验的都知道在iOS开发中,HTTP网络请求方式有很多种。比如:

ASIHTTPRequest

AFNetworking等

在以前的开发中,我比较习惯使用ASIHTTPRequest,但是自从ARC之后,ASIHTTPRequest没有更新升级了,不过还是能够满足日常的开发需求,同时使用cocospods管理,ASIHTTPRequest在ARC的条件下,也比较方便了。当然ASIHTTPRequest与AFNetworking之间各有优缺点。同时毕竟是第三方库存在太大不确定的因素,为此,我在日常的开发当中,慢慢的移除第三方库或自己基于苹果提供的API进行二次封装,提供接口。好了,不废话了,切入本文的主题,NSURLSession的使用,直接上代码:

1、简单请求

NSURLRequest *request = [[NSURLRequest allocinitWithURL:[NSURL URLWithString:@"http://www.baidu.com"]];

    NSURLSession *urlSession = [NSURLSession sharedSession];

    NSURLSessionDataTask *dataTask = [urlSession dataTaskWithRequest:request

                                                   completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                                                       NSLog(@"data > %@", data);

                                                   }];

    [dataTask resume];

    //    [dataTask suspend];

    //    [dataTask cancel];

    

    NSURLSessionDownloadTask *downloadTask = [urlSession downloadTaskWithRequest:request

                                                               completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {

                                                                   NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYESfirstObject];

                                                                   NSURL *documentsDirectoryURL = [NSURL fileURLWithPath:documentsPath];

                                                                   NSURL *newFileLocation = [documentsDirectoryURL URLByAppendingPathComponent:[[response URLlastPathComponent]];

                                                                   [[NSFileManager defaultManagercopyItemAtURL:location toURL:newFileLocation error:nil];

                                                               }];

    [downloadTask resume];

    

    NSURLSessionUploadTask *uploadTask = [urlSession uploadTaskWithRequest:request

                                                                  fromData:nil

                                                         completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                                                             

                                                         }];

    [uploadTask resume];


2、POST请求

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

    

    NSMutableURLRequest *request = [[NSMutableURLRequest allocinitWithURL:[NSURL URLWithString:@"url地址"]];

    [request setHTTPMethod:@"POST"];

    [request setHTTPBody:[@"version=1.0.0&os_version=7.1.2&os_type=iOS" dataUsingEncoding:NSUTF8StringEncoding]];

    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];

    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request

                                                completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                                                    

                                                    NSLog(@"获取到的数据>%@", [[NSString allocinitWithData:data

                                                                                              encoding:NSUTF8StringEncoding]);

                                                }];

    [dataTask resume];

相关文章推荐

NSURLSession

  • 2015年02月13日 18:09
  • 65KB
  • 下载

开发只懂 AFN ?搞定 NSURLSession 才是硬道理

由于傲娇的苹果在 iOS9 之后已经放弃了 NSURLConnection,所以在现在的实际开发中,除了大家常见的 AFN 框架,一般使用的是 iOS7 之后推出的 NSURLSession,作为...

iOS开发 - NSURLSession实现断点续传下载

NSURLSession1.使用步骤1> 获得NSURLSession对象 2> 利用NSURLSession对象创建对应的任务(Task) 3> 开始任务([task resume])2.获得NSU...

NSURLSession的使用demo

  • 2016年06月27日 19:53
  • 149KB
  • 下载

用NSUrlSession批量下载文件并保存文件的处理

现在我来介绍之前说过的用NSUrlSession批量下载的方法,用NSUrlSession下载文件,有两种方法,一是直接调用Block方法做下载后的处理,二是利用NSUrlSessionDelegat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NSURLSession
举报原因:
原因补充:

(最多只允许输入30个字)