2014-12-19 108 views
0

我们有更多数量的设备连接到网络与服务器通信,通常连接失败并且不会重新连接,如上所述问题我得到提到的错误。NSURLConnection失败,错误代码为-1001,-1005,1004,并且NSPOSIXErrorDomain代码为2

我们用它来发送请求的代码是

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

       NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http://ipaddress"]; 

       NSMutableURLRequest *menuRequest=[[NSMutableURLRequest alloc]initWithURL:url]; 



       NSURLResponse *response; 
       NSError *error=nil; 

       NSData *data = [NSURLConnection sendSynchronousRequest:menuRequest returningResponse:&response error:&error]; 

       dispatch_async(dispatch_get_main_queue(), ^{ 

        if(!error) 
        { 

         NSLog(@"Request Success"); 
         NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData: data]; 
         [xmlParser setDelegate:self]; 
         [xmlParser parse]; 
        } 
        else 
        { 
         NSLog(@"Failed with error-----%@",error); 
        } 
       }); 
      }); 

该请求被发送的每一分钟。

它只发生在客户端环境中,我们需要从此连接失败中恢复并重新连接(即使服务器启动,下一个请求也不会获得成功)。这发生在iOS 7 &中8.我经历了一些类似但我无法得到确切的原因,并解决了这些问题。帮助我出去的人。

回答

2

“我经历了一些类似的帖子,但我无法得到确切的原因,也没有解决这些问题的解决办法。帮我解决这些问题。”

你得到的错误的原因。具体而言,NSURLErrorDomain中的代码-1001,-1005和-1004超时,网络连接丢失,并且无法连接到主机。您可以在NSURLErrors.h头文件中查找这些错误代码。这些都是您的网络连接问题。

您发布的代码没有重新连接的逻辑,这就是为什么它不会尝试这样做。

+0

Sry dude我忘了提及这个请求是每隔一分钟发送一次。重新提到的是请求在下次发送时没有成功。我知道错误代码的原因,我需要确切地知道为什么这些错误发生以及如何从它们中恢复。 – vishnuvarthan 2014-12-19 08:25:52

+0

答案告诉你。没有什么可以恢复,除非记录尝试失败,并确保您的应用程序的行为是用户可以接受的。这听起来是你的客户的网络是问题。 – gnasher729 2014-12-19 09:47:43

+3

PS。许多人不会理解被称为“伙计”。特别是女性和男性成年人。 – gnasher729 2014-12-19 09:49:21

相关问题