zoukankan      html  css  js  c++  java
  • 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请求

    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里面,不易被捕获。




    只要有梦想,人生就有意义。。。
  • 相关阅读:
    vue导入excel表格
    正则表达式:输入六位数或六位数以下的正整数。
    iview下拉框支持多选
    vue通过jquery方式获取元素
    获取对象属性
    原生JS获取元素,添加事件
    打印当前页面,关闭当前页面
    Andrew Ng 机器学习公开课
    机器学习4《朴素贝叶斯》
    机器学习3《数据集与k-近邻算法》
  • 原文地址:https://www.cnblogs.com/jiafuyang/p/4817023.html
Copyright © 2011-2022 走看看