博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS-Http : GET : POST
阅读量:5084 次
发布时间:2019-06-13

本文共 3467 字,大约阅读时间需要 11 分钟。

一.概述

* 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同步请求一张网络图片(代码折叠)

1 NSURL *url = [NSURL URLWithString:@"http://img.ivsky.com/img/bizhi/slides/201508/18/september-012.jpg"];2 NSURLRequest *request = [NSURLRequest requestWithURL:url];3 NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];4  _iamgeview.image = [UIImage imageWithData:data];
同步获取网络图片

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

1 NSURL *url = [NSURL URLWithString:@"http://img.ivsky.com/img/bizhi/slides/201508/18/september-012.jpg"];2 NSURLRequest *request = [NSURLRequest requestWithURL:url];3 NSOperationQueue *queue = [[NSOperationQueue alloc]init];4 [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {5  _iamgeview.image = [UIImage imageWithData:data];6     }];
异步获取网络图片

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

1 - (void)viewDidLoad 2 { 3     [super viewDidLoad]; 4     NSURL *url = [NSURL URLWithString:@"http://img.ivsky.com/img/bizhi/slides/201508/18/september-012.jpg"]; 5     NSURLRequest *request = [NSURLRequest requestWithURL:url]; 6     [NSURLConnection connectionWithRequest:request delegate:self]; 7 } 8 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response; 9 {10     NSLog(@"接收到响应");11     _buffer = [[NSMutableData alloc]init];12 }13 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data14 {15     NSLog(@"接收到数据");16     [_buffer appendData:data];17 }18 - (void)connectionDidFinishLoading:(NSURLConnection *)connection19 {20     NSLog(@"请求完成");21     _iamgeview.image = [UIImage imageWithData:_buffer];22 }23 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)erro24 {25     NSLog(@"请求出错");26 }
异步请求网络图片

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

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

* 传输信息量比GET大。

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

 

- (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{    //请求出错之后响应的方法(如断网,超时)}

 

转载于:https://www.cnblogs.com/wangyaoguo/p/4810111.html

你可能感兴趣的文章
web服务器
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>