iOS之数据请求

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较早的版本中使用广泛。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. HTTP和HTTPS协议 URL:Uniform Resource Locator (统一资源定位符)通过1...
    CarsonChen阅读 4,996评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操...
    lilinjianshu阅读 11,388评论 4 4
  • 同步请求可以从因特网请求数据, 一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成, 才可以进行下一步操...
    小灬博阅读 4,367评论 2 4
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,388评论 30 472