整理关于Cocoa编程的一些有用的函数(2)

2013年6月5日 分类: Cocoa, 编程 (70 个脚步)

这次整理的是关于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:@"http://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:@"http://blog.shiniv.com"];
NSArray* urls = [NSArray arrayWithObject:[NSURL URLWithString:astring]];
[[NSWorkspace sharedWorkspace] openURLs:urls withAppBundleIdentifier:nil options:NSWorkspaceLaunchWithoutActivation additionalEventParamDescriptor:nil launchIdentifiers:nil];

整理关于Cocoa编程的一些有用的函数(2) 【声明】本文 整理关于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/ , 转载请保留本声明!

标签:
9 条评论
  • 去我的站不留言,我不得不鄙视你一下。

    • 额,今天没去你的网站哇,忙着弄离校手续呢……

  • 还是没有收到邮件通知,用多说吧,亲。

    • 为啥我能收到邮件呢。。
      ——————–
      好吧 我没插件 刚装了一个

    • 测试一下~看看有没有~

  • 你丫发文章的时候敢不敢去相关的论坛去发个帖宣传一下啊。 {:yct001:}

    • 这不是懒得改签名么,还得找管理员改

      • 我自己改了好像也木问题,另外,你回复了我居然木有收到E-mail通知?别人的站被回复都有E-mail通知的啊。

        • 额 估计被后台拦截了。。之前接到了说
          We have detected that 15 email messages were sent at the same time from account
          然后就被关了~现在估计好了

你必须要启用 Javascript