一.概述

* 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.设置请求路径
2 NSString *urlStr=[NSString stringWithFormat:@"http://192.168.1.53:8080/MJServer/login?username=%@&pwd=%@",self.username.text,self.pwd.text];
3 NSURL *url=[NSURL URLWithString:urlStr];
4
5 // 2.创建请求对象
6 NSURLRequest *request=[NSURLRequest requestWithURL:url];
7
8 // 3.发送请求

 

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

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

* 传输信息量比GET大。

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

点击button获取图片

- (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
{
    //请求出错之后响应的方法(如断网,超时)
}
POST请求 直接请求网络的连接
// 1.设置请求路径
2 NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要传递参数
3
4 // 2.创建请求对象
5 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默认为get请求
6 request.timeoutInterval=5.0;//设置请求超时为5秒
7 request.HTTPMethod=@"POST";//设置请求方法
8
9 //设置请求体
10 NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
11 //把拼接后的字符串转换为data,设置请求体
12 request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];
13
14 // 3.发送请求
通过请求头告诉服务器,客户端的类型(可以通过修改,欺骗服务器)
// 1.设置请求路径
2 NSURL *URL=[NSURL URLWithString:@"http://192.168.1.53:8080/MJServer/login"];//不需要传递参数
3
4 // 2.创建请求对象
5 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:URL];//默认为get请求
6 request.timeoutInterval=5.0;//设置请求超时为5秒
7 request.HTTPMethod=@"POST";//设置请求方法
8
9 //设置请求体
10 NSString *param=[NSString stringWithFormat:@"username=%@&pwd=%@",self.username.text,self.pwd.text];
11 //把拼接后的字符串转换为data,设置请求体
12 request.HTTPBody=[param dataUsingEncoding:NSUTF8StringEncoding];
13
14 //客户端类型,只能写英文
15 [request setValue:@"ios+android" forHTTPHeaderField:@"User-Agent"];
GET和POST区别:

1、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;

2、POST请求,将参数放到body里面。POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面,不易被捕获。


GET请求和POST请求简单说明的更多相关文章

  1. iOS开发网络篇—GET请求和POST请求

    iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...

  2. iOS开发网络篇—GET请求和POST请求(转)

    一.GET请求和POST请求简单说明 创建GET请求 1 // 1.设置请求路径 2 NSString *urlStr=[NSString stringWithFormat:@"http:/ ...

  3. iOS开发网络篇—GET请求和POST请求的说明与比较

    1.GET请求和POST请求简单说明 1.1 创建GET请求 // 1.设置请求路径 NSString *urlStr = [NSString stringWithFormat:@"http ...

  4. 二:网络--GET请求和POST请求

    一.GET请求和POST请求简单说明 GET - 从指定的服务器中获取数据 POST - 提交数据给指定的服务器处理 GET方法: 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送 ...

  5. swift开发网络篇—利用NSURLConnection GET请求和POST请求

    一.GET请求和POST请求简单说明 @IBOutlet weakvar userName:UITextField! @IBOutletweakvar userPwd:UITextField! @IB ...

  6. js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快、简单 post:安全,量大,不缓存)(服务器同步和异步区别:同步:等待服务器响应当中浏览器不能做别的事情)(ajax和jquery一起用的)

    js中ajax连接服务器open函数的另外两个默认参数get请求和默认异步(open的post方式send函数带参数)(post请求和get请求区别:get:快.简单 post:安全,量大,不缓存)( ...

  7. JSP、Servlet中get请求和post请求的区别总结

    在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...

  8. axios中出现两次请求,OPTIONS请求和GET请求

    在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求 查看到浏览器NetWork有两次请求,请求url一样: 查找原因是浏览器对简单跨域请求和复杂跨域请求的处理区别. XMLHttpRe ...

  9. Ajax中get请求和post请求

    我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...

随机推荐

  1. SVMshow

    SVMshow % http://www.peteryu.ca/tutorials/matlab/visualize_decision_boundaries % load RankData % Num ...

  2. Objective-C:Foundation框架-常用类-NSArray

    NSArray是用来存储对象的有序列表(NSSet是没有顺序的),它是不可变的.NSArray不能存储C语言中的基本数据类型,如int\float\enum\struct等,也不能存储nil.其用法如 ...

  3. word2013设置页面边框

    如图:

  4. windows下捕获dump之守护进程

    一两个月前为产品写了一个独立的exe,由于产品使用的捕获dump是一个现成的进程外exe,如果以资源的方式集成它容易出现安全警告,由于时间关系没有寻求新的解决方法,还是遵循旧方案,不捕获dump. 最 ...

  5. FusionCharts ajax 调用方式

    方式一:setJSONUrl function initChart() {                    var myChart = new FusionCharts("Fusion ...

  6. [Js]封装好的通过className来获取元素的函数

    <div id="box"> <div class="star"></div> <div class="st ...

  7. CodeForces 86D(Yandex.Algorithm 2011 Round 2)

    思路:莫队算法,离线操作,将所有询问的左端点进行分块(分成sqrt(n) 块每块sqrt(n)个),用左端点的块号进行排序小的在前,块号相等的,右端点小的在前面. 这样要是两个相邻的查询在同一块内左端 ...

  8. 用PDB库调试Python程序

    Python自带的pdb库,发现用pdb来调试程序还是很方便的,当然了,什么远程调试,多线程之类,pdb是搞不定的. 用pdb调试有多种方式可选: 1. 命令行启动目标程序,加上-m参数,这样调用my ...

  9. PDF2SWF转换只有一页的PDF文档,在FlexPaper不显示解决方法

    问题:PDF2SWF转换只有一页的PDF文档,在FlexPaper不显示! FlexPaper 与 PDF2SWF 结合是解决在线阅读PDF格式文件的问题的,多页的PDF文件转换可以正常显示,只有一页 ...

  10. JVM-class文件完全解析-方法表集合

    方法表集合 前面的魔数,次版本号,主板本号,常量池入口,常量池,访问标志,类索引,父类索引,接口索引集合,字段表集合,那么再接下来就是方法表了.   方法表的构造如同字段表一样,依次包括了访问标志(a ...