iOS-Http : GET : POST

一.概述

* HTTP/1.1协议共定义了8中请求方法:OPTIONS, HEAD, GET, POST, PUT, DELETE, TRACE, CONNECT.

* GET方法和POST是我们使用最频繁的网络请求方法。

* GET和POST在应用场合有什么区别呢?

* GET方法向指定资源发出请求,发送的消息显示的跟在URL后面,用户信息不安全,并且传送信息量有限。(如下所示,在请求中能看到用户名和密码)

   http://localhost:8080/logandreg/logreg?name=wyg&pwd=1992

* 如果仅仅是向服务器索要数据,没有参数,使用GET比较方便。(如下所示)

   http://www.baidu.com

* POST传送的信息量大,并且传送的信息是被隐藏的,传送信息比较安全,如果向服务器传送数据,建议使用POST.

二.GET请求网络数据(同步,异步)

* 如上所述,GET方法可以向指定资源发出请求,比如我们想再网络上请求一张图片在本地上显示,使用GET方法就非常的方便。

* GET请求分为同步请求和异步请求,一般情况下,为了良好的用户体验,我们都使用异步请求。

* GET同步请求一张网络图片(代码折叠)

同步获取网络图片

 *GET异步请求一张网络图片(iOS5.0)(代码折叠):

异步获取网络图片

  *GET异步请求(iOS2.0)(代码折叠)

异步请求网络图片

 三.POST请求网络数据(以异步为例,同步的与GET类似)

* 传输信息安全性比GET高。

* 传输信息量比GET大。

* 代码中带有详细解释,代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
- ( IBAction )postRequest:( id )sender
{
     //明确请求的url
     NSURL  *url = [ NSURL  URLWithString:@ "http://localhost:8080/logandreg/logreg" ];
     //创建请求(可变请求)
     NSMutableURLRequest  *request = [ NSMutableURLRequest  requestWithURL:url];
     //指定请求方式
     [request setHTTPMethod:@ "POST" ];
     //拼接参数内容
     NSString  *body = @ "name=wyg&pwd=1992" ;
     //请求数据放到请求的请求体中
     [request setHTTPBody:[body dataUsingEncoding: NSUTF8StringEncoding ]];
     //使用post发起异步请求
     [ NSURLConnection  connectionWithRequest:request delegate: self ];
}
- ( void )connection:( NSURLConnection  *)connection didReceiveResponse:( NSURLResponse  *)response
{
     //接收到响应之后响应的方法
     _buffer = [[ NSMutableData  alloc]init];
}
 
- ( void )connection:( NSURLConnection  *)connection didReceiveData:( NSData  *)data
{
     //接收到数据之后响应的方法
     [_buffer appendData:data];
}
- ( void )connectionDidFinishLoading:( NSURLConnection  *)connection
{
     //数据处理完成之后响应的方法
     NSString  *str = [[ NSString  alloc]initWithData:_buffer encoding: NSUTF8StringEncoding ];
     NSLog (@ "%@" ,str);
}
- ( void )connection:( NSURLConnection  *)connection didFailWithError:( NSError  *)error
{
     //请求出错之后响应的方法(如断网,超时)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值