整理关于Cocoa编程的一些有用的函数(2)
这次整理的是关于cocoa 网络的部分
由于这次写的程序是由他人提供的一个api,使用的是JSON格式。因为Cocoa是没有这个,某个强人写出了JSON for Cocoa ,造福人类哇~
废话到此为止。下面开始整理使用到的代码。
api所提供的JSON需要用POST获得,所以要模拟POST的操作将准备用到的内容取得。
下面这段代码就是模拟POST的方法获取远程api内容
NSMutableDictionary* headers = [[NSMutableDictionary alloc] init]; [headers setValue:@"text/html;charset=utf-8" forKey:@"Content-Type"]; [headers setValue:@"MIMEType" forKey:@"Accept"];//设置mime类型 [headers setValue:@"no-cache" forKey:@"Cache-Control"];//设置没有缓存 NSMutableURLRequest *connectionRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://blog.shiniv.com/api.php?mod=posts/recent"]];//新建一个NSMutableURLRequest对象 [connectionRequest setAllHTTPHeaderFields:headers];//设置提交的头数据 [connectionRequest setHTTPMethod:@"POST"];//设置使用POST的方法提交 [connectionRequest setTimeoutInterval:60.0];//设置超时时间 [connectionRequest setCachePolicy:NSURLRequestUseProtocolCachePolicy]; NSData *returnData = [NSURLConnection sendSynchronousRequest:connectionRequest returningResponse:nil error:nil];//得到返回的数据 NSString *dataStr = [[NSString alloc]initWithData:returnData encoding:NSUTF8StringEncoding];//用UTF-8来对返回的数据进行处理
得到返回的数据后,这一段返回的数据就是我们所要用到的JSON格式了 ,将它转换成我们在cocoa所用到的类型
SBJsonParser * parser = [[SBJsonParser alloc] init]; NSDictionary *jsonDic = [parser objectWithString:dataStr];//申请空间 NSMutableArray * thread = [jsonDic objectForKey:@"threads"];//寻找有关键字threads的内容,赋值到一个NSMutableArray上
如果想看里面的内容,可以在后面加上这段代码:
NSEnumerator *enumerator = [thread objectEnumerator];//将我们刚得到的NSMutableArray进行枚举 NSDictionary* item; while (item = (NSDictionary*)[enumerator nextObject]) { NSLog(@"%@",[item objectForKey:@"author"]); //循环对数据进行输出 }
打开URL 所用到的代码:
NSString *astring = [NSString stringWithFormat:@"https://blog.shiniv.com"]; NSArray* urls = [NSArray arrayWithObject:[NSURL URLWithString:astring]]; [[NSWorkspace sharedWorkspace] openURLs:urls withAppBundleIdentifier:nil options:NSWorkspaceLaunchWithoutActivation additionalEventParamDescriptor:nil launchIdentifiers:nil];
【声明】本文 整理关于Cocoa编程的一些有用的函数(2) 为柠之漠然原创文章,转载请注明出自
枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2013/06/%e6%95%b4%e7%90%86%e5%85%b3%e4%ba%8ecocoa%e7%bc%96%e7%a8%8b%e7%9a%84%e4%b8%80%e4%ba%9b%e6%9c%89%e7%94%a8%e7%9a%84%e5%87%bd%e6%95%b0%ef%bc%882%ef%bc%89/ , 转载请保留本声明!
去我的站不留言,我不得不鄙视你一下。