一. 数据的网络请求
大多数APP都是依托于服务器的,由服务器负责数据的管理交互,分发,筛选等等。APP做的事情就是发送请求,接收数据。当然有些请求也可以伴随数据的上传。
请求(Request):APP客户端发送给服务器的数据,根据服务器协议,通知服务器,要求服务器做出数据的筛选,管理或分发。
响应(Respond):服务器接收到APP的请求,会回馈响应。响应包括TCP稳定链接的建立,以及数据的传输。
【注】数据的请求协议:手机应用开发的绝大多数数据请求协议都是使用http(超文本传输协议)。
主要使用的请求:
<1>Post请求:请求数据不裸露,适合向服务器上传文件等大数据。
<2>get请求:最常用的app数据请求模式,通过裸露的传参方式,将我们请求的数据发送给服务端,服务端解析http协议,根据参数管理,筛选,分发数据,并作出相应响应。用于下载数据。
【注】数据格式JSon(很多,很简单)和Xml(很少,很困难)
在移动APP当中,服务器发送过来的数据,都是字符串,有两种格式JSon和Xml
将JSon格式的数据提取出来,保存到数据模型中的过程,称为JSon解析
将Xml格式的数据提取出来,保存到数据模型中的过程,称为Xml解析
【注】一般客户端流程
发送请求 -> 等待响应 -> 建立链接 ->下载数据 -> 解析数据 -> 存入数据模型 -> mvc 显示到UI
二.网络数据的下载
1.数据请求方法:
NSURLConnection 系统的
NSURLSession 系统的,iOS7.0之后出现,使用了block,提高了效率
ASIHttpRequest 第三方的,原来经常使用的数据请求库 缺点:环境是MRC,要进行ARC与MRC之间的转化,没有使用block
AFNetworking 第三方的,现在被经常使用,内部集成了NSURLConnection和NSURLSession.环境是ARC,使用了block,提高了开发效率,不用系统库的支撑
数据请求的方式get,post
2.请求方式:
post,get
2.1. 一般get是从服务器上获取数据,post是向服务器传送数据。
2.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
2.3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
2.4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
2.5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
建议:
get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;