zoukankan      html  css  js  c++  java
  • NSConnection_异步下载_代理

    NSURLConnection的Delegate回调函数

     

    接收到服务器的响应

    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;

     

    接收到服务器发送过来的数据,数据是分段发给我们的,所以这个方法会被调用多次

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

     

    服务器所有的数据都发送完成之后,会调用这个方法

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection;

     

    请求失败(url不合法、超时、网络中断等等)时会调用这个方法

    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;

     

     1     //字符串地址
     2     NSString *path=@"http://10.0.8.8/sns/my/user_list.php";
     3     
     4     //转网址
     5     NSURL *url=[NSURL URLWithString:path];
     6     
     7     //请求类   创建请求对象
     8     NSURLRequest *request=[NSURLRequest requestWithURL:url];
     9     
    10     
    11     //设置代理   发送异步请求  代理方法
    12     self.connection=[NSURLConnection connectionWithRequest:request delegate:self];17     
    18 }
    19 
    20 
    21 //建立连接  完成了请求  接收响应
    22 -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    23     
    24     NSLog(@"收到服务器响应,即将建立链接,下载数据");
    25     if ([response isKindOfClass:[NSHTTPURLResponse class]] == YES) {
    26         //如果协议是http响应,证明响应是正确的,打印响应的状态
    27         NSHTTPURLResponse * httpresponse = (id)response;
    28         //        NSHTTPURLResponse继承自NSURLResponse
    29         NSLog(@"%ld", (long)httpresponse.statusCode);
    30         //200成功  404 是错误,没有响应。
    31     }
    32     
    33     //收到响应之后,connection会自然的建立链接,下载数据。
    34     
    35     //清空_data
    36     if (_mdata==nil) {
    37         _mdata=[[NSMutableData alloc]init];
    38     }
    39     _mdata.length = 0;
    40     
    41 }
    42 
    43 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
    44 {
    45     NSLog(@"收到数据");
    46     //如果数据比较大,这个函数会反复调用,每次获取部分数据,数据就是参数data
    47     
    48     //将每次下载到的数据,拼接到_data中
    49     [_mdata appendData:data];
    50 }
    51 
    52 - (void)connectionDidFinishLoading:(NSURLConnection *)connection
    53 {
    54     NSLog(@"数据接收完毕");
    55     
    56     NSLog(@"%s", _mdata.bytes);
    57     //解析
    58     if (_mdata) {
    59         
    60         id obj=[NSJSONSerialization JSONObjectWithData:_mdata options:NSJSONReadingMutableContainers error:nil];
    61         
    62         NSLog(@"%@",obj);
    63     }
    64     
    65 }
    66 
    67 - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
    68 {
    69     NSLog(@"下载发生错误 %@", error);
    70 }
  • 相关阅读:
    来自1068
    耻辱的时间戳(笑哭)
    依然排序
    呵呵
    好吧,第二篇
    来自机房的第一篇博客
    Shader-水流效果
    unity中虚拟摇杆的实现
    (转载)Unity3d中的属性(Attributes)整理
    C#冒泡排序法及优化
  • 原文地址:https://www.cnblogs.com/konglei/p/4830519.html
Copyright © 2011-2022 走看看