zoukankan      html  css  js  c++  java
  • 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) 企业专门为了手机建立一个门户网站,使用HTML5PHPASP.net...

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

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

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

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

     3. 中文处理

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

     4. NSData

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

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

  • 相关阅读:
    接口和抽象类
    TSQL向自增字段中插入值
    字符串驻留备忘
    SQL Like中的逗号分隔符
    TSQL的一点小备忘
    ADO.NET与ADO
    JavaScript Office文档在线编辑备忘
    位运算练习:求多数的大数、二进制数中1的个数
    Vimeo反反复复地重生死亡。
    海底浓烟,低分辨率测试。
  • 原文地址:https://www.cnblogs.com/liufeng24/p/3500584.html
Copyright © 2011-2022 走看看