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

本文详细介绍了在iOS开发中如何使用NSURLConnection发起WebService请求,包括初始化连接、处理响应及错误的方法。通过四个关键步骤:启动请求、接收响应、处理数据、完成加载,实现了WebService的有效调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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数据接受完成");
    }
    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值