2011-12-07 165 views
0

在google上搜索几小时后,我仍然无法找到关于此问题的单个主题:
1.如果用户没有互联网连接,我需要提供错误处理功能。
2.用户有互联网连接但无法连接到服务器。ios - 网络/互联网连接

我在哪里可以放这些?我尝试了一个主题,但没有显示警报视图消息。

这里是我的代码:

- (IBAction)getDataPressed 
{ 
    if([myRequest_ isExecuting]) 
    { 
     return; 
    } 

    if(myRequest_ != nil) 
    { 
     [myRequest_ release]; 
    } 
    myRequest_ = [[ASIHTTPRequest alloc]initWithURL:[NSURL URLWithString:URL_PATH]]; 
    myRequest_.delegate = self; 
    [myRequest_ startAsynchronous]; 
} 

#pragma ASI Delegate methods 
- (void)requestFinished:(ASIHTTPRequest *)request 
{  
    NSLog(@"Request finished successfully"); 
    NSLog(@"%@",[request responseString]); 

    NSDictionary *responseDictionary = [[request responseString]JSONValue]; 
    NSDictionary *arrayElement = [responseDictionary objectForKey:@"user"]; 

    NSString *ID = [arrayElement valueForKeyPath:@"id"]; 
    NSLog(@"id: %@",ID); 
    NSString *usr = [arrayElement valueForKeyPath:@"usr"]; 
    NSLog(@"usr: %@",usr); 
    NSString *gd = [arrayElement valueForKeyPath:@"gd"]; 
    NSLog(@"gd: %@",gd); 
    NSString *ag = [arrayElement valueForKeyPath:@"ag"]; 
    NSLog(@"ag: %@",ag); 
    NSString *st = [arrayElement valueForKeyPath:@"st"]; 
    NSLog(@"st: %@",st); 
    NSString *lf = [arrayElement valueForKeyPath:@"lf"]; 
    NSLog(@"lf: %@",lf); 
    NSString *da = [arrayElement valueForKeyPath:@"da"]; 
    NSLog(@"da: %d",da); 

    for(NSString *value in [arrayElement allValues]){ 
     NSLog(@"Found Value %@",value);  
     label.text = [value stringByAppendingFormat:@",%@,%@,%@,%@,%@,%@,",ID,usr,gd,ag,st,lf]; 

    } 
} 
- (void)requestFailed:(ASIHTTPRequest *)request 
{ 
    NSLog(@"Error %@", [request error]); 
    if([request error]) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Destination Unreachable" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 
} 
-(void) dealloc 
{ 
    [super dealloc]; 
} 

感谢那些谁可以帮助^ _^

回答

0

我想你可以尝试Reachbility应用程序来帮助你,如果你有互联网或不检查。至于服务器本身,您可以使用NSUrlConnection Delegate方法来检查您的请求是否存在问题(通过查看即将发布的HTTP代码的类型)

+0

即使使用ASIHTTPREQUEST即时使用NSURLConnection也可以吗? – NoobMe

+0

我认为它应该以相同的方式工作(我也使用ASIHTTPRequest)。我认为他们有两种方法,一种是成功的,另一种是失败的。尽管我在成功方法上收到HTTP响应代码400。 – Peres

+0

可以请你解释它更多先生..和哦,顺便说一句,当我试图在可达性执行之前,即使在控制台甚至不给予回应....如何 – NoobMe