//Downloading Asynchronously with NSURLConnection
-(void) getDataAsynchronouslyFromUrl:(NSString *)urlString
{
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//如果想要一个限时的异步下载,则将上面一句改为:
// NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0f];
NSOperationQueue *queue = [NSOperationQueue new];
[NSURLConnection sendAsynchronousRequest:request
queue:queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([data length]>0 &&
error == nil) {
NSString *returnStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
} else if ([data length] == 0 &&
error == nil) {
NSLog(@"nothing was downloaded.");
} else if (error != nil) {
NSLog(@"error is %@",error);
}
}];
}
//Downloading Synchronously with NSURLConnection
-(void) getDataSynchronouslyFromUrl:(NSString *)urlString
{
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
if ([data length]>0 &&
error == nil) {
NSString *returnStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
} else if ([data length] == 0 &&
error == nil) {
NSLog(@"nothing was downloaded.");
} else if (error != nil) {
NSLog(@"error is %@",error);
}
}
//HTTP Get request
-(void) getDataByHTTPGetRequestFromUrl:(NSString *)urlString
{
// url = http://pixolity.com/get.php?param1=First¶m2=second for example
NSString *urlAsString = @"http://pixolity.com/get.php";
urlAsString = [urlAsString stringByAppendingFormat:@"?param1=First"];
urlAsString = [urlAsString stringByAppendingFormat:@"¶m2=second"];
NSURL *url = [NSURL URLWithString:urlAsString];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setTimeoutInterval:30.0f];
[urlRequest setHTTPMethod:@"GET"];
NSOperationQueue *queue = [NSOperationQueue new];
[NSURLConnection sendAsynchronousRequest:urlRequest
queue:queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([data length]>0 &&
error == nil) {
NSString *returnStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
} else if ([data length] == 0 &&
error == nil) {
NSLog(@"nothing was downloaded.");
} else if (error != nil) {
NSLog(@"error is %@",error);
}
}];
}
未完,待续