iOS 7.0 之后,苹果推出了新的网络 API —— NSURLSession。 NSURLSession supports the HTTP/1.1, SPDY, and HTTP/2 protocols.
从文档这句话中可以看出,新的网络库支持 HTTP 1.0 和 2.0 以及 Google 的 SPDY 网络协议。从这些特性上来讲,目前开发的 APP 都应该将网络库替换成 NSURLSession 了。首先探索下该网络库的使用。
Node JS 启动后台服务
网络请求就是客户端发起请求,服务端做出响应。作为 iOS 开发,如果没有后台数据的支持,只能到网络上找 API 了,但是我们可以通过 Node JS 实现简单的数据返回。
1 | var http = require('http') |
上面这段代码解释为:
接口:http://127.0.0.1:9000
数据:
1 | [{ |
通过 curl
验证:
1 | maple @ iMac in ~/Maple [8:53:14] |
OK, 目前为止服务端的数据已经有了。
NSURLSession Tour
1 | - (void)loadData { |
通过 NSURLSession 请求网络的步骤:
Step1:创建 NSURLSession 对象;
Step2:构造 url;
Step3:通过 NSURLSession 的实例方法 dataTaskWithURL: completionHandler: 构造网络请求,返回 NSURLSessionDataTask 对象
Step3: NSURLSessionDataTask 对象通过 resume 方法启动网络请求
这里 id obj = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
实现了 JSON 数据的序列化,obj 的类型是数组。
操作非常的简单,当然上面的请求是 GET 请求,下一篇看一下 POST 请求。