
在iOS7中,苹果介绍了新的API —— NSURLsession,这一系列的API是用来替代NSURLConnection的。
NSURLSession带来了这些新的好处:
NSURLSession的架构也很简单,NSURLSession本身就是一个统领,然后带着一个右将军NSURLSessionConfiguration,他是负责NSURLSession的各种配置的,然后还有一个左将军,他负责代理,也就是随时跟进老大的状态,然后到某个状态点的时候进行响应。最后就是一堆NSURLSessionTask小兵,他们负责完成实际的任务。
而NSURLSessionTask小兵其实也是个泛指,它实际上有分几个兵种:
1 - (id)initWithCoder:(NSCoder *)aDecoder
2 {
3 self = [super initWithCoder:aDecoder];
4 NSLog(@"hello initWithCoder");
5 //1
6 NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"https://www.okcoin.com/api/ticker.do"]];
7 //2
8 NSURLSession *session = [NSURLSession sharedSession];
9 //3
10 NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
11 if (!error) {
12 //4
13 NSHTTPURLResponse *httPResponse = (NSHTTPURLResponse *)response;
14 //5
15 if (httpResponse.statusCode == 200) {
16 //6
17 NSString *string = [[NSString alloc] initWithData:data encoding:NSStringEncodingConversionAllowLossy];
18 NSLog(@"%@",string);
19 }
20 }
21 }];
22 //7
23 [dataTask resume];
24
25 return self;
26 }
1、将URL打包成request
2、创建session,调用sharedSession表示使用默认配置来创建sessionNSURLSession *session = [NSURLSession sharedSession];
这一行代码换成
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
NSURLSessionConfiguration就是这样用的,当然,这个小程序暂时还用不着设置其他配置。 不过很有必要介绍一下NSURLSessionConfiguration的三个基本配置: