NSUrlSession 网络会话介绍
2015-12-01 16:46
525 查看
NSUrlSession 网络会话的使用分三步:
1> 创建网络会话 【单例】
2> 实例化网络任务【默认挂起状态,并且在在子线程回调】
3> 开启网络任务【手动】
1> 创建网络会话 【单例】
2> 实例化网络任务【默认挂起状态,并且在在子线程回调】
3> 开启网络任务【手动】
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSString *urlString = @"http://localhost/服务器资料/demo.json"; // 如果url中有汉字,需要做百分号转译,在iOS9以后使用新的方法 stringByAddingPercentEncodingWithAllowedCharacters: urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 1. 实例化一个网络会话(单例) NSURLSession *session = [NSURLSession sharedSession]; // 2. 根据网络会话,实例化网络任务! NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { // Block 回调,网络请求成功之后的回调! (默认是在子线程) //注意: 1.data:二进制数据! 转换过来之后是否是json格式的数据,可通过转为字符串来查看. // 2.在网络请求中,必须做失败处理! if (data) { // 判断服务器是否响应回来数据.如果有响应数据,说明肯定访问成功! // 这句代码是调试的时候最常用的一句代码! // NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; // NSLog(@"jsonString:%@",jsonString); // 参数: Data 二进制数据(必须是JSON格式的二进制数据,如果不是,解析出来是 nil )! // 在 OC 中 ,看到两个 ** 传 NULL(空地址) .一个 * 传 nil(空对象)! // 返回值,就是解析之后的 OC 数据! NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"dict:%@",dict); // 接下来,就是字典转模型... } }]; // 3. 开启这个网络任务! 默认是挂起状态,需要手动开启. [task resume]; }
相关文章推荐
- iOS开发之路--微博“更多”页面
- iOS开发之路--微博骨架搭建
- IOS开发代码分享之获取启动画面图片的string
- IOS开发之路--C语言数组和字符串
- IOS开发代码分享之用nstimer实现倒计时功能
- IOS开发代码分享之设置UISearchBar的背景颜色
- iOS和tvOS游戏按需加载资源简介
- ios开发之环境搭建-01
- 在开发iOS程序时对日期处理的总结
- iOS开发——keychain的使用
- iOS Graphics Technologies iOS 图形技术
- iOS开发异常错误总结
- 学习Objective-C:入门手册
- iOS NSURLSession
- iOS开发 简单实现视频音频的边下边播
- 初学ios开发之iOS 证书、描述文件、AppID
- iOS开发 — Quartz 2D知识点应用 (制作了一个Demo,源代码)
- ios开发对配置文件plist的操作
- iphone5和4的屏幕兼容问题
- 9秒的课程只为培养靠谱的IOS和HTML5开发人才而定制