2014-12-19 103 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

相關問題