2016-07-06 278 views
0

我正在使用Xcode 6.1,iOS 8.1中的應用程序;該應用程序工作完全正常,直到2天前,但今天,當我執行它,我得到了一個錯誤的網絡服務&錯誤打印如下。錯誤:錯誤域= NSURLErrorDomain代碼= -1001「請求超時。」

Error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo=0x7c6899b0 {NSErrorFailingURLStringKey=<URL>, NSErrorFailingURLKey=<URL>, NSLocalizedDescription=The request timed out., NSUnderlyingError=0x7c688f60 "The request timed out."} 

我用了AFNetworking 2.x和下面的代碼片段,使網絡電話:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
manager.responseSerializer.acceptableContentTypes=[manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 

[manager POST:<URL> 
    parameters:<parameters> 
     success:^(AFHTTPRequestOperation *operation, id responseObject) { 

      NSLog(@"JSON: %@", responseObject); 
      NSError *error = nil; 
      NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:&error]; 
      if (error) { 
       NSLog(@"Error serializing %@", error); 
      } 
      NSLog(@"Dictionary %@", JSON); 
      NSLog(@"Success"); 
     } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
      NSLog(@"Error: %@", error); 
     }]; 
} 
+0

那麼這就是有時網絡和服務器訪問會發生什麼。你的代碼設計必須處理網絡停機或服務器停機的可能性,或者它可能非常慢。 – Gruntcakes

回答

2

您可以設置時間間隔要求

[manager.requestSerializer setTimeoutInterval:100]; 
+1

網絡的默認超時是60秒,如果它在60秒後超時,如何將其更改爲10解決問題? – Gruntcakes

-1

您可以設置時間間隔要求

[manager.requestSerializer setTimeoutInterval:150]; 

如果服務器在時間間隔60秒後給出響應,那麼它很有用。

+5

嘿,這是個主意,爲什麼不把超時設置爲5小時?這是必然的工作是不是? – Gruntcakes

相關問題