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同步请求一张网络图片(代码折叠)
NSURL *url = [NSURL URLWithString:@"http://img.ivsky.com/img/bizhi/slides/201508/18/september-012.jpg"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
_iamgeview.image = [UIImage imageWithData:data];
同步获取网络图片
*GET异步请求一张网络图片(iOS5.0)(代码折叠):
NSURL *url = [NSURL URLWithString:@"http://img.ivsky.com/img/bizhi/slides/201508/18/september-012.jpg"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
_iamgeview.image = [UIImage imageWithData:data];
}];
异步获取网络图片
*GET异步请求(iOS2.0)(代码折叠)
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://img.ivsky.com/img/bizhi/slides/201508/18/september-012.jpg"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection connectionWithRequest:request delegate:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
{
NSLog(@"接收到响应");
_buffer = [[NSMutableData alloc]init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSLog(@"接收到数据");
[_buffer appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"请求完成");
_iamgeview.image = [UIImage imageWithData:_buffer];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)erro
{
NSLog(@"请求出错");
}
异步请求网络图片
三.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
{
//请求出错之后响应的方法(如断网,超时)
}
iOS-Http : GET : POST的更多相关文章
- iOS可视化动态绘制连通图
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- iOS代码规范(OC和Swift)
下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- 告别被拒,如何提升iOS审核通过率(上篇)
iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- Summary of Critical and Exploitable iOS Vulnerabilities in 2016
Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...
- 黑云压城城欲摧 - 2016年iOS公开可利用漏洞总结
黑云压城城欲摧 - 2016年iOS公开可利用漏洞总结 作者:蒸米,耀刺,黑雪 @ Team OverSky 0x00 序 iOS的安全性远比大家的想象中脆弱,除了没有公开的漏洞以外,还有很多已经公开 ...
随机推荐
- Ubuntu 下安装WPS
1.先到wps官网上下载wps的deb包. http://www.wps.cn/product/ 2.我使用的64位的,所以得安装32位兼容包 sudo apt-get install ia32-li ...
- 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名!
// 记住密码功能 JS结合JQuery 操作 Cookie 实现记住密码和用户名! var username = document.getElementById("username&quo ...
- 主题模型LDA及在推荐系统中的应用
1 关于主题模型 使用LDA做推荐已经有一段时间了,LDA的推导过程反复看过很多遍,今天有点理顺的感觉,就先写一版. 隐含狄利克雷分布简称LDA(latent dirichlet allocation ...
- 分享几个能用的 editplus 注册码
转载自: https://www.cnblogs.com/shihaiming/p/6422441.html 原文:http://host.zzidc.com/wljc/1286.html EditP ...
- shell中变量字符串的截取 与 带颜色字体、背景输出
字符串截取 假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 /及其左边的字符串:dir ...
- LeetCode(168) Excel Sheet Column Title
题目 Given a positive integer, return its corresponding column title as appear in an Excel sheet. For ...
- LeetCode(117) Populating Next Right Pointers in Each Node II
题目 Follow up for problem "Populating Next Right Pointers in Each Node". What if the given ...
- HDU:2586-How far away
How far away Time limit1000 ms Memory limit32768 kB Problem Description There are n houses in the vi ...
- debian 7 安装vagrant
下载 vagrant_1.4.3_x86_64.deb: $ wget http://966b.http.dal05.cdn.softlayer.net/data-production/2f0b88e ...
- 制作iso文件
genisoimage -o fusionstor-yi-2017-03-08.iso(镜像名称) -v -cache-inodes -joliet-long -R -J -T -V ZS -c ...