【问题标题】:ios - Network / Internet Connectionios - 网络/互联网连接
【发布时间】:2011-12-07 09:15:17
【问题描述】:

在谷歌上搜索了几个小时后,我仍然找不到一个关于这个的主题:
1.如果用户没有互联网连接,我需要放置错误处理功能。
2.用户有互联网连接但无法连接到服务器。

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

这是我的代码:

- (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];
}

感谢帮助的人^_^

【问题讨论】:

    标签: ios objective-c networking


    【解决方案1】:

    我认为您可以尝试Reachbility 应用程序来帮助您检查您是否有互联网。至于服务器本身,你可以使用NSUrlConnection Delegate方法来检查你的请求是否有问题(通过查看来的HTTP代码的种类)

    【讨论】:

    • 即使我使用 ASIHTTPREQUEST 也可以使用 NSURLConnection 吗?
    • 我认为它有时应该以同样的方式工作(我也使用 ASIHTTPRequest)。我确实认为他们有两种方法,一种用于成功,另一种用于失败。虽然我在成功方法上收到了 HTTP 响应代码 400。
    • 先生,您能多解释一下吗.. 哦,顺便说一下,当我在执行之前尝试可达性时,即使在控制台中也没有给出响应.. 怎么样
    • 设置使用 ASIHTTPRequest 时,您需要说明谁将成为委托人(换句话说:谁将接收来自服务器的响应)。然后你需要实现两种方法,一种用于成功,另一种用于失败。
    • 你可以在这里查看如何使用它:allseeing-i.com/ASIHTTPRequest/How-to-use。对于可达性,您可以查看本教程:tympanus.net/codrops/2009/09/14/…
    猜你喜欢
    • 2016-12-21
    • 2015-08-20
    • 1970-01-01
    • 2017-05-23
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多