加载http://www.google.com url中的问题在iOS应用程序

问题描述:

我使用下面的代码检查我的第一个iOS应用程序(大约3年前)的互联网连接。加载http://www.google.com url中的问题在iOS应用程序

NSError *err = nil; 
NSStringEncoding encoding; 

NSString * connectionstring = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] usedEncoding:&encoding error:&err]; 

if(connectionstring.length ==0) 
{ 
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error Occured" message:@"No Internet Connection." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 
else 
{ 
    // loading another screen 
} 

的问题是在印度和美国,它是进入了else条件比利时它会进入如果条件并引发错误。那么Google在比利时是否有任何限制?

如果标记不正确,请指导我。在我目前的版本中,通过使用Rechability类来检查这个问题来解决这个问题。只是我想知道这件事。提前致谢。

作为第一步,请看编码。

通过插入

NSLog(@"encoding: %@", [NSString localizedNameOfStringEncoding:encoding]); 

到您的代码创建的ConnectionString后即可登录编码权。

为了进一步调试,您可以尝试首先将url加载到NSData对象中,然后检查数据并最终从数据创建NSString。

替代解决方案:检查互联网连接使用Apple提供的Reachability类。 下载苹果示例Here,为您的项目添加Reachability类。

- (BOOL)isConnected 
{ 
    Reachability *reachability = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus networkStatus = [reachability currentReachabilityStatus]; 
    return !(networkStatus == NotReachable); 
} 
+1

谢谢大师。我在当前版本中使用了Rechability类。只是我想知道这件事。 – user247 2013-03-18 06:58:06

+0

酷...快乐编码 - – Guru 2013-03-18 06:59:39

而不是使用google.com使用互联网的任何地方的客户端服务器测试URL检查它也将是非常快的响应的比较互联网验证的任何其他方式。