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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值