简单网络请求/GET请求/POST请求

#pragma mark – 简单网络请求- (IBAction)simpleRequest:(id)sender {//1.构造URLNSURL *url = [NSURL URLWithString:@""];//2.构造RequestNSURLRequest *request = [NSURLRequest requestWithURL:url];//3.构造SessionNSURLSession *session = [NSURLSession sharedSession];//4.构造要执行的任务task/*** task** @param data返回的数据* @param response 响应头* @param error 错误信息**/NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {NSLog(@"response: %@", response);if (error == nil) {/*NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"data: %@", dataStr);*///json –> data 用JSON对象创建data//NSJSONSerialization *jsonData = [NSJSONSerialization dataWithJSONObject:<#(id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError *__autoreleasing *)#>]/*options:1.读取readingNSJSONReadingMutableContainers生成可变的对象,不设置这个option,默认是创建不可变对象NSJSONReadingMutableLeaves生成可变的字符串MutableString(iOS7+有bug)NSJSONReadingAllowFragments 允许json数据最外层不是字典或者数组2.写入writingNSJSONWritingPrettyPrinted生成json数据是格式化的,有换行,可读性高*///data –> json 用data创建jsonNSJSONSerialization *jsonData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];NSLog(@"json: %@", jsonData);//JSONKit 开源框架} else {//处理相应的错误}}];//5.发送请求[task resume];}#pragma mark – GET请求- (IBAction)getRequest:(id)sender {//GET请求, 也可以给服务器发送信息, 也有参数(微博用户名,用户id)//1.构造URL, 参数直接拼接在url连接后NSURL *url = [NSURL URLWithString:@""];//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.构造SessionNSURLSession *session = [NSURLSession sharedSession];//4.TaskNSURLSessionDataTask *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);}}];//5.[task resume];}#pragma mark – POST请求- (IBAction)postRequest:(id)sender {//POST请求//1.构造URLNSURL *url = [NSURL URLWithString:@"https://api.weibo.com/2/statuses/update.json"];//2.构造RequestNSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];//(1)设置为POST请求[request setHTTPMethod:@"POST"];//(2)超时[request setTimeoutInterval:60];//(3)设置请求头//[request setAllHTTPHeaderFields:nil];//(4)设置请求体//发微博//请求体里需要包含至少两个参数//access_token 指定用户的令牌(这个以后会讲)//status 微博正文NSString *bodyStr = @"access_token=XXXXX&status=我们想要发送的内容";NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];[request setHTTPBody:bodyData];//3.构造SessionNSURLSession *session = [NSURLSession sharedSession];//4.taskNSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {NSLog(@"response : %@", response);}];//5.[task resume];}

,最大的成功在于最大的付出。

简单网络请求/GET请求/POST请求

相关文章:

你感兴趣的文章:

标签云: