NSURLRequest 简单的网络请求详解手机开发

NSURLRequest 简单的网络请求

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
      
    NSURL* url = [NSURL URLWithString:@"http://img21.mtime.cn/mg/2012/03/25/112544.76654880.jpg"]; 
    _imageData = [[NSMutableData alloc] init]; 
      
    //进度条 
    _pv = [[UIProgressView alloc] initWithFrame:CGRectMake(50, 50, 220, 20)]; 
    [self.view addSubview:_pv]; 
    [_pv release]; 
      
      
    //创建一个请求 
  //NSURLRequest* request = [NSURLRequest requestWithURL:url]; 
    NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:30]; 
    //发送请求 
    [NSURLConnection connectionWithRequest:request delegate:self]; 
} 
  
//接收响应头 
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{ 
    NSLog(@"接收到响应头"); 
    [_imageData setLength:0]; 
    //拿到响应体长度 
    NSHTTPURLResponse* res = (NSHTTPURLResponse*)response; 
    _length = [[res.allHeaderFields objectForKey:@"Content-Length"] floatValue]; 
    NSLog(@"length:%f",_length); 
    //是否 开启 网络开关 状态栏的 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 
} 
  
//接收响应体,下载数据 
/* 
 0 1 2 3 4 5 6 7 8 9 
 0 1 
     2 3 4  
           5 6 7 
                 8 9 
 0 1 2 3 4 5 6 7 8 9 
 */ 
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ 
    NSLog(@"接收响应体"); 
    //把每次下载的数据添加到一起 
    [_imageData appendData:data]; 
      
    //刷新进度条 
    [_pv setProgress:_imageData.length / _length animated:YES]; 
} 
  
//成功 
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
    NSLog(@"成功"); 
    UIImage* image = [UIImage imageWithData:_imageData]; 
    self.view.backgroundColor = [UIColor colorWithPatternImage:image]; 
      
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
} 
  
//失败 
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ 
    NSLog(@"失败"); 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
}

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5202.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论