现在的位置: 首页 > 综合 > 正文

NSURLConnection同步,异步与SSL

2013年04月23日 ⁄ 综合 ⁄ 共 1235字 ⁄ 字号 评论关闭

 通常在IPhone里用网络访问会用到NSURLConnection来做url链接请求,下面简单介绍一下:

1、同步请求
             NSURL *url=[[NSURL alloc]initWithString:urlString];

NSMutableURLRequest 
*request=[[
NSMutableURLRequest alloc]init];

NSError *err=nil;

NSData *data=[NSURLConnection sendSynchronousRequest:request

   returningResponse:nil 

  error:&err];

if(data==nil)

{

//if([err
code])

NSLog(@"Code:%d,domain:%@,localizedDesc:%@",[err code],

 
[err 
domain],[err localizedDescription]);

}

else

{

}

  这种情况,通过一个静态方法,请求request,这种情况下,会一直阻塞,等到返回结果,简单易用


2、异步请求

NSURL *url=[[NSURL alloc]initWithString:urlString];

NSMutableURLRequest  *request=[[NSMutableURLRequest alloc]init];

NSURLConnection *connection
= [[NSURLConnection allocinitWithRequest:requestdelegate:self];

[url release];

[request release];

if(connection)

{

        
receivedData = [[NSMutableData dataretain];

        
NSLog(@"intial
done!");

    
}

else

{

        
NSLog(@"sorry");

    
}

通过一个delegate来做数据的下载以及Request的接受等等消息,此处delegate:self,所以需要本类实现一些方法,并且定义receivedData做数据的接受

基本上要实现下面节歌方法


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

{

NSLog(@"get
the whole response");

    
[
receivedData setLength:0];

}

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

 {

NSLog(@"get
some data");

    
[receivedData appendData:data];

}

抱歉!评论已关闭.