NSURLConnection GET请求返回-1005,“networking连接已丢失”

我正在尝试在iOS 8 SDK的XCode 6(Beta7 2)中使用NSURLConnection进行一个简单的GET请求,该代码与“代码1005,networking连接丢失”失败。 当我尝试从Web上获取http://www.google.com或其他几个示例页面时,调用失败,但是如果向本地主机上的简单HTTP服务器( python -m SimpleHTTPServer )发出请求,则调用失败。 我也尝试使用AFNetworking库(2.4.1) – 与NSURLConnection失败的URL也与图书馆失败。

这是我的代码 –

 NSString * url = @"http://0.0.0.0:8000"; // NSString * url = @"http://www.google.com"; NSLog(@"URL : %@", url); // Mutable is probably not required, but just in case it REALLY WANTS me to set HTTP method NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]]; [theRequest setHTTPMethod:@"GET"]; NSURLResponse *urlResponse = nil; NSError *error = nil; NSData * data = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&urlResponse error:&error]; if (error == nil) { NSString *response = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; NSLog(response); } else { NSString *response = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; NSLog(@"%@", [error userInfo]); } 

日志:

 2014-09-11 17:34:23.950 SearchExample[5092:2074687] URL : http://www.google.com 2014-09-11 17:34:24.023 SearchExample[5092:2074687] { NSErrorFailingURLKey = "http://www.google.com"; NSErrorFailingURLStringKey = "http://www.google.com"; NSLocalizedDescription = "The network connection was lost."; NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1005 \"The network connection was lost.\" UserInfo=0x7fc8515640a0 {NSErrorFailingURLStringKey=http://www.google.com/, NSErrorFailingURLKey=http://www.google.com/, _kCFStreamErrorCodeKey=57, _kCFStreamErrorDomainKey=1, NSLocalizedDescription=The network connection was lost.}"; "_kCFStreamErrorCodeKey" = 57; "_kCFStreamErrorDomainKey" = 1; } 2014-09-11 17:34:24.023 SearchExample[5092:2074687] URLResponse: (null) 

我最近在iPhone 6模拟器上看到互联网连接失败,导致相同的错误。 我的Mac有一个工作的互联网连接模拟器没有。 重新启动模拟器修复了这个问题。

我在某些networking调用中一直在iOS 9上发生这个错误。 两个工作正常,但另外两个没有。

事实certificate,这是由一些不正确的参数,我正在通过请求的身体引起的…我不会有预期,导致-1005错误…但它..摆脱了不必要的参数,使这一切工作!

我已经尝试了至less从谷歌的15个答案的build议,但没有一个解决了我的问题,直到我尝试了以下完全解决我的问题。 看起来,Wi-Fi连接可能会在Mac上损坏,所以如果你删除你正在使用的特定连接,然后再次连接(通过selectnetworking,再次input密码),这将解决这个问题,并没有更多的可怕-1005 “networking连接丢失”错误。

  • 转到Mac菜单栏上的Wi-Fi符号,然后select“closuresWi-Fi”
  • 然后select“打开networking首选项”(从相同的菜单,在底部)。
  • 在networking面板的右下angular,select“高级”。
  • select您之前连接的networking连接。
  • 点击此表下方的减号以删除此连接。
  • 点击“确定”这个窗口。
  • 在networking窗口中点击“应用”。
  • 返回菜单栏上的Wi-Fi符号,然后重新打开Wi-Fi。
  • 等待你的networking连接出现,然后select它(现在它会再次要求input密码,因为你删除了连接信息)。
  • 现在它会记住这个新的刷新连接应该解决问题!

尝试更改AFNetworking http或json中的请求序列化。 在我的情况下,这是JSON然后我设置为http。 现在,这是工作。

 [[VTNetworkingHelper sharedInstance] performRequestWithPath:@"Your url " withAuth:YES forMethod:@"POST" withRequestJSONSerialized:NO withParams:params withCompletionHandler:^(VTNetworkResponse *response) { if (response.isSuccessful) { }else { }]; 

我已经观察到,当你保持模拟器活跃,你的mac长时间睡眠(比如5到10小时),就会发生这个问题。 然后突然你在模拟器上运行应用程序,它显示日志为

 NSURLConnection GET request returns Code=-1005 "The network connection was lost." 

解决方法是简单地退出模拟器清理项目重新运行项目。 这对我有用!

我有类似的问题,重新启动模拟器无法正常工作。 在我的情况下,我能够像在奇怪的时间打networking服务,这将是成功的,甚至在这个时候,它向我抛出这个错误。 我知道它的奇怪,但它是这样的情况。 快速解决以下方法:

  let urlconfig = NSURLSessionConfiguration.defaultSessionConfiguration() urlconfig.timeoutIntervalForRequest = 1 urlconfig.timeoutIntervalForResource = 1 let session = NSURLSession(configuration: urlconfig) let task = session.dataTaskWithRequest(request){(data,response,error) in //Processing } task.resume() 

简单&样品解决scheme,多次testing,工作完美。

//使用状态码检查响应错误,如果得到-1005,再次调用该API。

  if let strErrorReasonCode : Int = response.response?.statusCode { if authentication_Errors_Range.contains(Alamofire_Error) { self.POST(urlString, paramaters: paramaters, showLoader: showLoader, success: { (responseObject) in if response.result.isSuccess { if let value = response.result.value { let dictResponce = self.isValidated(value as AnyObject) if dictResponce.0 == true { success(dictResponce.1) } else { failure(dictResponce.1) } } } }, failure: {_ in failure(jsonResponce) }) } }