关闭

NSURLRequest 同步和异步

2135人阅读 评论(1) 收藏 举报

同步下载:

-(void)downloadSynJarFiles

{

    NSString *urlAsString = @"http://192.168.1.196:8080/PlaceNaviServer/WEB-INF/lib/activation.jar";---要下载的全路径名

    NSURL *url = [NSURL URLWithString:urlAsString];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSError *error = nil;

    

    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];

    /*下载的数据*/

    if (data!=nil) {

        NSLog(@"下载成功");

        if ([data writeToFile:@"/Users/sunningning/Desktop/activation.jar" atomically:YES]) {--下载到目的路径名

            NSLog(@"保存成功!");

        }

        else

        {

            NSLog(@"保存失败!");

        }

    }

    else{

        NSLog(@"%@",error);

    }

}



异步下载:

//异步

-(void)downloadAsnJarFiles

{

    NSString *urlAsString = @"http://192.168.1.196:8080/PlaceNaviServer/WEB-INF/lib/activation.jar";

    NSURL *url = [NSURL URLWithString:urlAsString];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSMutableData *data = [[NSMutableData alloc]init];

    self.connectionData = data;

    [data release];

    NSURLConnection *newConnection = [[NSURLConnection alloc]

                                      initWithRequest:request delegate:self

                                      startImmediately:YES];

    self.connection = newConnection;

    [newConnection release];

    if (connection !=nil) {

        NSLog(@"Successfully create the connection");

    }

    else{

        NSLog(@"can not create the connection!");

    }

    

}


-(void)connection:(NSURLConnection *)connection 

    didFailWithError:(NSError *)error

{

    NSLog(@"an error happened!");

    NSLog(@"%@",error);

}


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

{

    NSLog(@"receive data");


    [self.connectionData  appendData:data];--这里才真正意义的取值和赋值

}


-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

    NSLog(@"haha----");

    /*下载数据*/

    if ([self.connectionData writeToFile:@"/Users/sunningning/Desktop/activation.jar" atomically:YES]) {--保存到目的路径

        NSLog(@"保存成功!");

    }

    else

    {

        NSLog(@"保存失败!");

    }

    

    /*处理data*/

}


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

{

    [self.connectionData setLength:0];

}


- (void)viewDidUnload

{

    [super viewDidUnload];

    // Release any retained subviews of the main view.

    // e.g. self.myOutlet = nil;

    [self.connection cancel];//取消连接

    self.connectionData = nil;//属性

    self.connection = nil;//属性

}




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1105629次
    • 积分:10516
    • 等级:
    • 排名:第1617名
    • 原创:236篇
    • 转载:162篇
    • 译文:3篇
    • 评论:37条
    最新评论