美文网首页
iOS之数据请求

iOS之数据请求

作者: Zzzzzzz7 | 来源:发表于2016-04-14 21:14 被阅读0次

URL:就是资源的地址、位置,每一个互联网资源都有一个唯一的URL。
HTTP协议:Hyper Text Transfer Protocol(超文本传输协议),http是一个应用层的协议,由请求和响应构成,是一个标准的客户端服务器模型。

  • 两种请求方式:
    • GET
      
    •  POST
      

l两种请求方式的比较
相同点:都能给服务器传输数据。
不同点:
1、给服务器传输数据的方式不同:
GET:通过网址字符串
POST:通过data
2、传输数据的大小:
GET:网址字符串最多255字节
POST:使用NSData,容量超过1G
3、安全性:
GET:所有传输给服务器的数据,显示在网址里,类似于密码的铭文输入,可以直接读取
POST:数据被转为NSData(二进制数据),类似于密码的密文输入,无法直接读取

//get 同步

- (void)getAndSynchionous {
    //创建网址
    NSURL *url = [NSURL URLWithString:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20151031&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"];
    //创建请求体
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    //发送请求,连接服务器
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",str);
    
}
//session   get请求(block)

- (void)sessionAndGet {
    //创建网址和session对象
    NSURLSession *session = [NSURLSession sharedSession];
    NSURL *url = [NSURL URLWithString:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20151031&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"];
    //通过URL初始化tast  在block内部可以直接返回对数据的处理
    NSURLSessionDataTask *dast = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; 
        NSLog(@"%@",str);
    }];
    [dast resume];
}

//post  请求
- (void)sessionAndPost {

    NSURLSession *session = [NSURLSession sharedSession];
    NSURL *url = [NSURL URLWithString:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"];
    //穿件请求体
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    request.HTTPMethod = @"POST";
    request.HTTPBody = [@"date=20151031&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" dataUsingEncoding:NSUTF8StringEncoding];
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
       
        NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@",str);
    }];
    [task resume];
    
}

总结

  • 网络请求的步骤:1、NSURL;2、NSURLResquest;3、NSURLConnection;4、处理Error或者返回数据。
  • NSURLSession是iOS7中新的网络处理方式,NSURLConnection在iOS较早的版本中使用广泛。

相关文章

  • iOS 之数据请求

    一. HTTP和HTTPS协议 URL:Uniform Resource Locator (统一资源定位符)通过1...

  • iOS之数据请求

    URL:就是资源的地址、位置,每一个互联网资源都有一个唯一的URL。HTTP协议:Hyper Text Trans...

  • iOS 网络之数据请求

    一、异步 1、GET请求(BLOCK) //初始化一个session NSURLSession *session ...

  • iOS 数据结构之链表

    iOS 数据结构之链表 iOS 数据结构之链表

  • iOS数据存储之NSCoder

    资源连接: iOS数据库存储之SQL语句; iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS...

  • iOS数据库存储之SQLite3

    资源连接: iOS数据库存储之SQL语句; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; SQL...

  • iOS数据存储之文件沙盒

    资源连接: iOS数据库存储之SQL语句; iOS数据库存储之SQLite3; iOS数据存储之NSCoding;...

  • iOS数据库存储之SQL语句

    资源连接: iOS数据库存储之SQLite3; iOS数据存储之文件沙盒; iOS数据存储之NSCoding; S...

  • PHP返回数据给移动端

    以POST请求为例PHP代码: iOS代码 iOS 端数据返回打印:

  • 2019-04-30

    iOS开发之网络数据解析(一)--JSON解析简介 原文链接:原文链接 前言:对服务器请求之后,返回给客户端的数据...

网友评论

      本文标题:iOS之数据请求

      本文链接:https://www.haomeiwen.com/subject/wdoglttx.html