我们下载cnblogs上的一个zip文件。使用NSURLRequest+NSURLConnection可以很方便的实现这个功能。在asp.net webservice中可以将文件的地址返回到iOS系统,iOS系统再通过这个url去请求下载该文件。这里为了简单起见,直接将url写道代码里面了。我们可以使用两种方式去下载文件。
1、同步下载文件:
[cpp]
<span style="font-family:宋体;">NSString *urlAsString = @"http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip";
NSURL *url = [NSURL URLWithString:urlAsString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSError *error = nil;
NSData *data = http://www.cnblogs.com/zhwl/archive/2012/07/13/[NSURLConnection sendSynchronousRequest:request
returningResponse:nil
error:&error];
/* 下载的数据 */
if (data != nil){
NSLog(@"下载成功");
if ([data writeToFile:@"UIWebViewDemo.zip" atomically:YES]) {
NSLog(@"保存成功.");
}
else
{
NSLog(@"保存失败.");
}
} else {
NSLog(@"%@", error);
} </span>
2.异步下载
[cpp]
<span style="font-family:宋体;">DownLoadingViewController.h
// DownLoadingViewController.h
// DownLoading
//
// Created by skylin zhu on 11-7-30.
// Copyright 2011年 mysoft. All rights reserved.
//
#import
@inte易做图ce DownLoadingViewController : UIViewController {
NSURLConnection *connection;
NSMutableData *connectionData;
}
@property (nonatomic,retain) NSURLConnection *connection;
@property (nonatomic,retain) NSMutableData *connectionData;
@end
DownLoadingViewController.m
// DownLoadingViewController.m
// DownLoading
//
// Created by skylin zhu on 11-7-30.
// Copyright 2011年 mysoft. All rights reserved.
//
#import "DownLoadingViewController.h"
@implementation DownLoadingViewController
@synthesize connection,connectionData;
- (void)dealloc
{
[super dealloc];
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
//文件地址
NSString *urlAsString = @"http://files.cnblogs.com/zhuqil/UIWebViewDemo.zip";
NSURL *url = [NSURL URLWithString:urlAsString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSMutableData *data = http://www.cnblogs.com/zhwl/archive/2012/07/13/[[NSMutableData alloc] init];
self.connectionData = http://www.cnblogs.com/zhwl/archive/2012/07/13/data;
[data release];
NSURLConnection *newConnection = [[NSURLConnection alloc]
initWithRequest:request
delegate:self
startImmediately:YES];
self.connection = newConnection;
[newConnection release];
if (self.connection != nil){
NSLog(@"Successfully created the connection");
} else {
NSLog(@"Could 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(@"Received data");
[self.connectionData appendData:data];
}
- (void) connectionDidFinishLoading
:(NSURLConnection *)connection{
/* 下载的数据 */