xcode 中异步调用 WebService 获得大数据量的处理方式

  1. 调用 webserivce的方法

            //异步请求
            NSURLConnection *theConnection = [[[NSURLConnection alloc] initWithRequest:urlRequest delegate:self] autorelease];
            if (theConnection) {   
                // Create the NSMutableData that will hold 
                // the received data 
                // receivedData is declared as a method instance elsewhere 
                self.receivedData=[[NSMutableData data] retain];   
            } else {   
                
            }   
    



    其中 receivedData 是定义在 .h 文件中的 NSMutalbeData 类型

  2. 要实现4个方法 ,分别在 调用时候,发生错误,获得数据,调用完成的时候触发
    //如果调用有错误,则出现此信息
    -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
    {
        DLog(@"ERROR with theConenction:%@",error );
     
    }
    
    //开始调用请求
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
        // store data
        DLog(@"didReceiveResponse");
        [self.receivedData setLength:0  ];            //通常在这里先清空接受数据的缓存
    }
    
    //调用成功(大数据量的时候可能会多次调用),获得soap信息
    -(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *)responseData
    {
        DLog(@"(在大数据量的时候,可能是一部分)获取的返回responseData 是:%@",[[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease]);
        [self.receivedData appendData:responseData];    
    }
    
    - (void) connectionDidFinishLoading:(NSURLConnection *) connection
    {
        DLog(@"%d",[self.receivedData length]);
        NSString * wsReturnValueString = [[NSString alloc] initWithData:self.receivedData encoding:NSUTF8StringEncoding];
        DLog(@"webserivce 调用结束,收取到的 全部报文是:%@",wsReturnValueString );
        DLog(@"WebService数据接受完成");
    }
    


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值