ios请求概述
在ios开发中,网络请求并不是特比额复杂,这得益于一个给力的第三方库——AFNetworking的出现。
AFNetworking 1.0建立在NSURLConnection的基础API之上,AFNetworking 2.0开始使用NSURLConnection的基础API和部分NSURLSession基础之上的API。现有的AFNetworking 3.0版本已经完全基于NSURLSession的API,这样一来,不仅降低了代码维护的工作量,同时也支持NSURLSession提供的任何额外的功能。
影响网络请求的几个条件
确定网络请求的URL,URL的全称是Uniform Resource Locator(统一资源定位符),通过一个URL,能找到互联网上唯一的一个资源。网址就是资源,我们所需要的数据存在服务器端,app根据网址(NSURL)向后台发送请求(NSURLRequest)。
1、网络请求的方式
App与后台服务器之间的数据交互,是通过网络请求的方式来实现的。网络请求最常用的方法有两种:GET请求和POST请求。需要说明的是,网络请求并不是ios独有的。
2、GET请求和POST请求的区别
- GET请求的接口会包含参数部分,参数会作为网址的一部分,服务器地址与参数之间通过字符“?”来间隔;POST请求会将服务器地址与参数分开,请求接口中只有服务器地址,而参数会作为请求的一部分,提交给后台服务器。
- GET请求参数会出现在接口中,不安全;而POST请求相对安全。
- 虽然GET请求和POST请求都可以用来请求和提交数据,通常情况下GET多用于从后台请求数据,POST多用于向后台提交数据。
关于GET和POST的选择,可参考以下几点:
- 如果要传递大量数据,如文件上传,只能用POST请求。
- GET的安全性比POST要差些,如果包含机密或敏感信息,建议用POST。
- 如果仅仅是获取数据(数据查询),建议使用GET。
- 如果是增加、修改、删除数据,建议使用POST。
3、发送请求
ios向服务器端发送请求,建立客户端与服务端的连接(NSURLConnection或NSURLSessionTask),连接的方式有两种:同步与异步。
- 同步连接:当建立同步连接时,请求发出去以后,等着后台返回数据。只要后台还没有返回数据,那么其他的操作都不能执行。对于代码来说,只要同步请求未结束,它下面的代码就不会执行。
- 异步连接:请求发出后,不用等待,即使后台的数据还没有返回,但仍然可以进行其他操作。在代码中的表现就是,发送了请求之后,即使数据未返回,它下边的代码也可以继续执行。异步实现的方式有两种:一种是通过代理,另一种是通过block回调。
4、获取服务器的返回数据。
服务器在的到客户端的请求后&#