【问题标题】:Error: Error Domain=NSURLErrorDomain Code=-1001 “The request timed out.”错误:错误域=NSURLErrorDomain 代码=-1001 “请求超时。”
【发布时间】:2016-07-06 04:50:20
【问题描述】:

我正在开发 Xcode 6.1、iOS 8.1 中的应用程序;该应用程序在 2 天前运行良好,但今天我执行它时,我在 Web 服务中遇到了错误,并且错误打印在下面。

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 和以下代码 sn-p 进行网络调用:

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

【问题讨论】:

  • 这就是网络和服务器访问有时会发生的事情。您的代码设计必须处理网络故障或服务器故障或速度可能非常慢等的可能性。

标签: ios


【解决方案1】:

您可以设置请求的时间间隔

[manager.requestSerializer setTimeoutInterval:100];

【讨论】:

  • afnetwork 的默认超时时间是 60 秒,如果 60 秒后超时,如何将其更改为 10 来解决问题?
【解决方案2】:

您可以设置请求的时间间隔

[manager.requestSerializer setTimeoutInterval:150];

如果服务器在时间间隔 60 秒后给出响应。那么它是有用的。

【讨论】:

  • 嘿,这是一个想法,为什么不将超时设置为 5 小时?那一定会起作用的,不是吗?
猜你喜欢
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多