关于iOS中的NSURLSession

网络编程一定在开发中重中之重了,上传和下载更是必不可少的环节,iOS7中将NSURLConnection进行了加强成为了现在的NSURLSession,可以更好的通过设置来完成我们的任务。同时增加了后台传输功能,断点续接等。总之,苹果是越来越贴心了。

其实用过NSURLConnection的,应该很快就会掌握这个类的用法的,大家只要是弄清楚配置和任务这两个类就会很快的很好的应用这个类的,很简单,
配置:NSURLConfiguration
任务 : NSURLSessionTask - NSURLSessionDataTask, NSURLSessionDownLoadTask, NSURLSessionUpLoadTask.

具体的就不说了,如果大家想真正的弄明白的话,可以参考一些具体的开发基础的书籍,推荐一本-《iOS核心开发手册》

  1. 获取数据
NSURL *url = [NSURL URLWithString:urlString];
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        request.HTTPMethod = @"GET";

        // 创建会话
        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
        NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
        NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            if (error == nil) {
                NSLog(@"数据请求成功");
            }
            else {
                NSLog(@"数据请求失败");
            }
        }];
        // 开始执行任务
        [dataTask resume];
  1. 上传
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
        [request setHTTPMethod:@"POST"];
        // 创建包体data
        NSData *bodyData = [par dataUsingEncoding:NSUTF8StringEncoding];
        NSURLSessionConfiguration * configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
        NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
        NSURLSessionUploadTask *upTask = [session uploadTaskWithRequest:request fromData:bodyData completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            if (error == nil) {
                NSLog(@"上传成功");
            }
            else {
                NSLog(@"上传失败");
            }
        }];
        // 开始上传
        [upTask resume];

其实用其俩比NSURLConnection的简单。其实AFNetWorking已经对NSURLSession进行了封装了。大家也可以研究一下AFN中方法,我的上一篇的图片上传就是用的AFN,如果自己写图片上传的话很麻烦的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值