ios开发之网络基础

1、网络访问的步骤

  1> 建立NSURL

  2> 建立NSURLRequest

  3> 建立NSURLConnection

  4> 开始连接

  

 1 - (void)viewDidLoad
 2 {
 3     [super viewDidLoad];
 4     
 5     // url
 6     NSURL *url = [NSURL URLWithString:@"www.baidu.com"];
 7     
 8     // request
 9     NSURLRequest *request = [NSURLRequest requestWithURL:url];
10     
11     // connection
12     NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
13     
14     // start
15     [connection start];
16 }

 

……

5> 通过代理NSURLConnectionDataDelegate方法处理网络请求的数据

     (1) 服务器响应,表示服务器处理完成请求,准备给客户端发送数据

   (2) 客户端接收数据,可能会有多次,因此需要借助成员变量拼接服务器返回的数据

   (3) 数据接收完成,处理数据结果,并更新界面显示

   (4) 网络访问出错,提示用户

以下代码会在debug区域打印从百度首页抓取的数据

 1 #pragma mark - 网络代理方法
 2 #pragma mark 1.知道服务器查询完毕,准备向客户端(我)发送数据
 3 // response 响应、通知
 4 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
 5 {
 6     // _serverData 成员变量,用于拼接时保存数据
 7     _serverData = [NSMutableData data];
 8 }
 9 
10 #pragma mark 2. 接收数据(可能会重复多次,因为服务器返回的数据量可能会比较大),需要拼接以下服务器返回的数据
11 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
12 {
13     [_serverData appendData:data];
14 }
15 
16 #pragma mark 3. 处理接收完的数据,负责显示工作
17 - (void)connectionDidFinishLoading:(NSURLConnection *)connection
18 {
19     // 接收完成的后续处理->字符串
20     NSString *result = [[NSString alloc] initWithData:_serverData encoding:NSUTF8StringEncoding];
21     
22     // html
23     NSLog(@"%@", result);
24     
25 }
26 
27 #pragma mark 4. 网络访问出错
28 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
29 {
30     NSLog(@"网络不给力 - %@", error.localizedDescription);
31 }

 

 2. 应用模式

 在两年前,此开发模式被广为流传

 (1) 企业专门为了手机建立一个门户网站,使用HTML5\PHP\ASP.net...

 (2) 客户端只需要通过一个WebView即可访问

 PhoneGap:能够创建跨平台的移动应用框架,主要实现的核心机制就是HTML5

 使用WebView的方式最大的缺陷是用户体验不好,而且无法利用手机本身的很多交互方式,例如手势、加速计等

 操作模式过于单薄,目前尚处于研究阶段。

 3. 中文处理

 在网络请求地址中,如果包含中文,需要将中文转换成带百分号的格式

 4. NSData

 是在OC中专门用于存储二级制数据的一种数据类型,可以存储任意类型的数据。

 在实际开发中,可以根据具体的应用场景,将NSData转换为其他的类型。

posted @ 2014-01-01 14:38  2020_xx  阅读(351)  评论(0编辑  收藏  举报