OC-获取网络资源的一些方式
来源:互联网 发布:java二级考试视频 编辑:程序博客网 时间:2024/06/15 00:36
在storyboard里创建4个按钮一个TEXT,分别是同步GET,异步GET,同步POST,异步POST
思路:GET方法,通过微博的API接口,获取微博的数据,并对数据进行解析并显示需求的数据在模拟器上
同步GET
1、根据得到的数据的格式,新建一个Model类,用于解析需求
实现Model类的方法
2、使用同步的方式得到数据
- (IBAction)synchronizeGet:(UIButton *)sender { //NSLog(@"同步GET"); NSString *urlString=@"https://api.weibo.com/2/statuses/public_timeline.json?access_token=2.00mHP1iFy3UdOB074129558f0_kqZ2"; //对字符串进行编码 urlString=[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; NSURL *url=[NSURL URLWithString:urlString]; //使用urlconnection类 与服务器连接,这个是同步的过程, //创建一个URL请求,参数1:请求地址;参数2:缓存策略 ;参数3:请求超时计时 NSURLRequest *request=[NSURLRequest requestWithURL:url cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval:60]; NSURLResponse *response; NSError *error; NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; //JSON数据格式解析,利用系统提供的API进行JSON数据解析 NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; WeiboModel *model=[[WeiboModel alloc]initWithDictionary:dic]; NSString *text=[model.statuses[0] objectForKey:@"text"]; self.textView.text=text;
异步GET
- (IBAction)asynchronismGET:(UIButton *)sender { NSLog(@"异步GET"); NSString *urlString=@"https://api.weibo.com/2/statuses/public_timeline.json?access_token=2.00mHP1iFy3UdOB074129558f0_kqZ2"; //编码 NSString *urlSting=[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; NSURL *url=[NSURL URLWithString:urlSting]; NSURLRequest *request=[NSURLRequest requestWithURL:url cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval:60]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; WeiboModel *model=[[WeiboModel alloc]initWithDictionary:dic]; NSString *text=[model.statuses[0] objectForKey:@"text"]; dispatch_async(dispatch_get_main_queue(), ^{ self.textView.text=text; }); }];
同步POST
- (IBAction)synchronizePost:(UIButton *)sender { NSString *urlString=@"https://api.weibo.com/2/statuses/update.json"; urlString=[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; NSURL *url=[NSURL URLWithString:urlString]; //POST:设置它的方法体 NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:60]; NSString *bodyString=@"status=O_O &access_token=2.00mHP1iFy3UdOB074129558f0_kqZ2"; NSData *data=[bodyString dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:data]; NSData *resultData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:resultData options:NSJSONReadingAllowFragments error:nil]; NSLog(@"%@",dic); }
异步POST
- (IBAction)asynchronismPost:(UIButton *)sender { NSString *urlString=@"https://api.weibo.com/2/statuses/update.json"; urlString=[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]]; NSURL *url=[NSURL URLWithString:urlString]; NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:60]; NSString *bodyString=@"status=O_O &access_token=2.00mHP1iFy3UdOB074129558f0_kqZ2"; NSData *data=[bodyString dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPMethod:@"POST"]; [request setHTTPBody:data]; connectionPost=[NSURLConnection connectionWithRequest:request delegate:self ];
0 0
- OC-获取网络资源的一些方式
- mysql的一些网络资源
- 一些不错的网络资源搜集
- 流的方式访问网络资源
- OC利用正则表达式获取网络资源(网络爬虫)
- OC利用正则表达式获取网络资源(网络爬虫)
- OC利用正则表达式获取网络资源(网络爬虫)
- OC利用正则表达式获取网络资源(网络爬虫)
- 一些网络资源
- 获取网络资源
- 学习JAVA不可不知的一些网络资源
- 手机访问网络资源的两种方式
- ADF获取一些组件指的方式
- jsp页面一些获取值的方式
- OC 的一些总结
- 一些OC的基础知识
- OC的一些基础知识
- oc的一些基础知识
- XML解析 获取节点属性
- mac下安装lnmp环境
- 6.0权限问题
- git 忽略文件gitignore
- Android 仿淘宝选中商品不同尺寸的按钮组
- OC-获取网络资源的一些方式
- HBase的Write Ahead Log (WAL) —— 整体架构、线程模型
- shell编程之if判断的总结
- 06margin外边距基本使用
- Java线程监听,意外退出线程后自动重启
- php 查看数组占用的内存大小
- cf#368-E. Garlands-(二维树状数组)
- mysql prompt的用法详解
- linux C编程(四)int占用字节数/大小端模式/数据类型自动转换/结构体内存占用