您的位置:首页 > 其它

OC学习心得之异步连接

2015-11-15 17:55 267 查看

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里面,所以即使传再多内容都没问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: