NSURLRequest,NSURLConnection 下载

来源:互联网 发布:java 路径 编辑:程序博客网 时间:2024/05/29 13:19

记录下自己的练习: 

        没有断点续传,下次再做。只是简单的下载demo。


        点击下载按钮 

- (IBAction)selectDownLoadBtn:(id)sender {        if (connection) {        return;    }    NSURL *url = [NSURL URLWithString:DOWNLOAD];    NSMutableURLRequest *reqeust= [NSMutableURLRequest requestWithURL:url                                                          cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];    [reqeust setHTTPMethod:@"GET"];    connection = [[NSURLConnection alloc]initWithRequest:reqeust delegate:self];    if (connection) {        mutableData = [[NSMutableData alloc]init];    }}

执行回调方法:主要有四个

#pragma mark-#pragma mark- NSURLConnectionDataDelegate- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{    NSLog(@"response");    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;    if (httpResponse && [httpResponse respondsToSelector:@selector(allHeaderFields)]) {        NSDictionary *httpResponseHeaderFields = [httpResponse allHeaderFields];        mFileSize = [httpResponseHeaderFields[@"Content-Length"] longLongValue];//获取文件的大小    }}- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{    NSLog(@"data");    //接受数据,在接受完成之前会一直掉重复调用    [mutableData appendData:data];    //label的值    self.myLabel.text = [NSString stringWithFormat:@"%.f%@",([mutableData length]/(float)mFileSize)*100,@"%"];    //进度条    [self.myProgress setProgress:[mutableData length]/(float)mFileSize];}-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{    NSLog(@"error = %@",error);    //出错时调用    NSLog(@"Connection failed! Error - %@ %@",          [error localizedDescription],          [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);}-(void)connectionDidFinishLoading:(NSURLConnection *)connection{    NSLog(@"完成的时候调用");    NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"android.mp4"];    [mutableData writeToFile:filePath atomically:NO];//将数据写入Documents目录。    NSLog(@"%@",filePath);}

只是简单的去下载,没有去作别的操作.

0 0