NSURLSession(一)GET请求

//GET 请求 , 也可以给服务器发送信息 , 也有参数 ( 微博用户名 , 用户 id)
   
   
//1. 构造 URL, 参数直接拼接在 url 连接后
    NSURL *url = [NSURL URLWithString:
@"http://news-at.zhihu.com/api/3/news/4602734" ];
   
   
//2. 构造 Request
   
// get 请求的请求头保存在 request
   
//NSURLRequest *request = [NSURLRequest requestWithURL:url];
   
   
// 参数
   
// (1)url
   
// (2) 缓存策略
   
// (3) 超时的时间 , 经过 120 秒之后就放弃这次请求
   
//NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:120];
   
//NSURLRequest 不可变 , 不能动态的添加请求头信息
   
   
// 可变的对象
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
   
   
//(1) 设置请求方式
    [request setHTTPMethod:
@"GET" ];
   
   
//(2) 超时时间
    [request setTimeoutInterval:120];
   
   
//(3) 缓存策略
    [request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];
   
   
//(4) 设置请求头其他内容
   
//[request setValue:<#(NSString *)#> forHTTPHeaderField:<#(NSString *)#>];
   
//[request addValue:<#(NSString *)#> forHTTPHeaderField:<#(NSString *)#>];
   
//[request setAllHTTPHeaderFields:<#(NSDictionary *)#>];
   
    [request setValue:
@"gzip" forHTTPHeaderField: @"Accept-Encoding" ]; // 告诉服务 , 返回的数据需要压缩
   
   
//3. 构造 Session
    NSURLSession *session = [NSURLSession sharedSession];
   
   
//4. 构造要执行的任务 task
   
/**
     * task
     *
     * @param data
返回的数据
     * @param response
响应头
     * @param error
错误信息
     *
     */

    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
       
       
if (error == nil ) {
           
/*
             NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
             NSLog(@"data: %@", dataStr);
             */

           
           
//json --> data
           
//NSJSONSerialization *jsonData = [NSJSONSerialization dataWithJSONObject:<#(id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError *__autoreleasing *)#>]
           
/*
             options:
             1.
读取 reading
             NSJSONReadingMutableContainers
生成可变的对象 , 不设置这个 option, 默认是创建不可变对象
             NSJSONReadingMutableLeaves
生成可变的字符串 MutableString(iOS7+ bug)
             NSJSONReadingAllowFragments
允许 json 数据最外层不是字典或者数组
             2.
写入 writing
             NSJSONWritingPrettyPrinted
生成 json 数据是格式化的 , 有换行 , 可读性高
             */

           
//data --> json
            NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(
@"data: %@" , dataStr);
        }
    }];
   
   
//5.
    [task resume];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值