OC学习心得之异步连接

来源:互联网 发布:诛仙手游数据互通吗 编辑:程序博客网 时间:2024/06/08 06:17

1、同步连接和异步连接
同步连接是iOS中网络连接的一种方式,当请求的数据量小时,同步连接是一个很好的选择。UI“冻结”是它的一个缺点。
同步连接步骤:
//新建一个URL
    NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    //创建一个请求
NSURLRequest *req=[NSURLRequest requestWithURL:url];
//发起同步连接
    NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
//打印字符串信息
    NSString * str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"str = %@",str);
异步连接是iOS最常用的一种网络连接方式。适应传输数据量大,在连接过程中UI不“冻结”。
异步连接步骤:
//初始化一个URL
    NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];
    //创建一个请求
    NSURLRequest * req = [NSURLRequest requestWithURL:url];
    //发起异步连接
    [NSURLConnection connectionWithRequest:request delegate:self];
    //其他的事情交给代理方法去完成
    NSLog(@"NSURLConnection 完成");
异步请求代理方法
(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response//连接接受响应,表示成功建立连接
(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data//连接接受数据
(void)connectionDidFinishLoading:(NSURLConnection *)connection
//连接完成
2、JSON解析
数据解析是从繁杂的数据中筛选出自己需要的数据。
规则:大括号代表字典,中括号(或小括号)代表数组。冒号左右两边分别为key键和值value。数据与数据之间用逗号分隔。
例如:
[{"name":"kallen","age":"26","sex":"男"},{'"name":"alex","age":"24","sex":"男"}]
数组中存放连个字典,字典里包含3个key值。
例如:
存在jsont.json文件,解析出名字kallon
NSString *path=[[NSBundle mainBundle]pathForResource:@"jsont" ofType:@"json"];//获取文件路径
    NSString *jsonStr=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];//创建字符串根据读取到的文件路径
  NSDictionary  *jsondic=[jsonStr JSONValue];//将字符串转化为字典
        NSArray *jsonArray=[jsondic objectForKey:@"hello"];
  NSDictionary *dic=[jsonArray objectAtIndex:0];//数组里下标为0的字典
     NSString*name=[dic objectForKey:@"name"];//将字典的属性name
   NSLog(@"%@",name);
运行结果
2013-02-18 15:00:51.603 oc第九课文件和网络 课堂练习[1557:c07] kallon
2、GET请求和POST请求
GET将参数直接写在了访问路径上,POST请求将参数放到body里面。它们的区别有以下几点:
a、GET操作简单,所有参数直接写到地址里面就可以了;POST操作相对复杂,需要将参数和地址分开写。
b、GET方式参数容易被外界看到,安全性不高;POST方式安全性比较高,参数放在了body里面,不易被捕获。
c、GET方式地址(含参数)最多长度255字节,多余的部分会被截掉;POST因为参数在body里面,所以即使传再多内容都没问题。
0 0
原创粉丝点击