#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
网络:NSURLSession
最新推荐文章于 2021-08-31 17:31:00 发布