#import "ViewController.h"
#import "Header.h"
@interface ViewController ()<NSURLSessionDataDelegate>
/**
* 用于保存相关的数据
*/
@property (nonatomic, strong) NSMutableData *resultData;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
// 对数据进行加载:使用NSURLSessionDataTask和NSURLSessionTask两者没有本质区别
// 要处理下载任务的使用使用此任务NSURLSessionDownloadTask
// 要处理上传任务使用:NSURLSessionUploadTask
#pragma mark - get请求(异步)
- (IBAction)getRequest:(UIButton *)sender {
// 1.创建url
NSURL *url = [NSURL URLWithString:GET_URL];
// 2.创建session对象
NSURLSession *session = [NSURLSession sharedSession];
// 3.创建task请求任务
// NSURLSession是基于任务去完成相关请求的
// NSURLSessionTask所有的任务都放在这里面
NSURLSessionTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
// 4.解析数据
if (error == nil) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSLog(@"%@", dic);
}
}];
// 5.启动任务【千万不能忘记】
// 原因:NSURLSessionTask实例出来的任务处于挂起状态,如果不启动,不会走block中的实现内容
[task resume];
}
@end