iOS之数据请求

2016-04-14  本文已影响0人  Zzzzzzz7

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

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];
    
}

总结

上一篇 下一篇

猜你喜欢

热点阅读