您的位置:首页 > 理论基础 > 计算机网络

网络:NSURLSession

2016-04-20 19:45 441 查看
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
// NSURL
NSURL *url = [NSURL URLWithString:@"http://localhost/demo.json"];

[self taskWithURL:url finished:^(id responseObj, NSError *error) {

NSLog(@"%@ -- %@",error,responseObj);
}];

}

/**
url 要请求的URL
finished 完成回调
*/
- (void)taskWithURL:(NSURL *)url finished:(void(^)(id responseObj,NSError *error))finished {

// 创建任务,并且马上去执行

[[[NSURLSession sharedSession]dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

if (finished) {
// 在内部解析JSON,AF也是这么封装的

finished([NSJSONSerialization JSONObjectWithData:data options:0 error:NULL], error);
}
}] resume];
NSLog(@"end");
}

- (void)loadData {
// NSURL
NSURL *url = [NSURL URLWithString:@"http://localhost/demo.json"];
// 全局的会话
NSURLSession *session = [NSURLSession sharedSession];

// 默认是挂起的
NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"%@ -- %@",response,[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]);
}];
// 开始任务
[task resume];
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: