Get是从服务器上获取数据,Post是向服务器传送数据。对于Get方式,服务器端用Requset.QueryString获取变量的值,对于Post方式,服务器端用Request.Form获取提交的数据。Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内个个字段一一对应,在URL中可以看到。Post是通过HTTP Post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
Get安全性非常低,Post安全性较高,但是Get方式的执行效率比Post好。
所以建议使用Get做查询,使用Post做增、删、改。
在开发战记第24话中我们使用的同步获取天气信息的方法就是一种Get方式的同步请求,请看以下代码:
这里创建NSURLRequest对象的时候,使用了一个更加复杂的构造器:
URL参数:请求路径
cachePolicy参数:缓存协议
timeoutInterval参数:网络请求超时时间(单位:秒)
缓存协议是个枚举类型:
下面介绍异步Get请求方式:
在连接了服务器之后,使用下面两个异步请求的代理方法NSURLConnectionDataDelegate,来接收相关数据。
同步Post方法如下,把参数放到HTTP的body中,安全性比较高
异步Post请求方式如下:
然后就可以在代理方法中进行操作了。