网络: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
相关文章推荐
- HTTP笔记
- bzoj4538: [Hnoi2016]网络
- 解决 nginx https反向代理http协议 302重定向localtion到http问题
- linux 网络编程基础(四)read,write,connect, accept 超时封装
- IP地址、子网掩码、网络号、主机号、网络地址、主机地址
- android开发网络请求
- Android开发请求网络方式
- [BZOJ4538]网络
- linux 网络编程基础(三)selsct函数应用
- Cocos2d-x3.1TestCpp之NewRenderTest Demo分析
- http、TCP/IP协议与socket之间的区别
- 网络数据请求
- 理解HTTP幂等性
- linux网络编程基础(二)
- HTTP协议详解
- Retrofit的简单封装--更方便的配置okhttp
- java获取http请求的Header和Body
- Eclipse开发web项目中关于HttpServletRequest包的问题
- Android之打开系统的网络设置
- 纽约的区块链技术能源网络改革