NSURLConnection GET request devuelve -1005, “se perdió la conexión de red”

Estoy tratando de hacer una simple solicitud GET utilizando NSURLConnection en XCode 6 (Beta7 2) en iOS 8 SDK, que está fallando con “Código 1005, se perdió la conexión de red”. La llamada falla cuando trato de buscar http://www.google.com o algunas otras páginas de muestra de la web, pero tiene éxito si realizo una solicitud a un servidor HTTP simple en localhost ( python -m SimpleHTTPServer ). También he intentado usar la biblioteca de AFNetworking (2.4.1): las URL que fallan con NSURLConnection también fallan con la biblioteca.

Aquí está mi código:

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

Registros:

 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) 

Recientemente, he visto fallar la conectividad a Internet en el simulador de iPhone 6, lo que generó los mismos errores. Mi Mac tenía una conexión a Internet que funcionaba, pero el simulador no. Reiniciar el simulador solucionó el problema.

Obtuve este error constantemente en iOS 9 con ciertas llamadas de red. Dos funcionaban bien, pero otros dos no.

Resultó ser causado por algunos parámetros incorrectos que estaba pasando con el cuerpo de la solicitud … No esperaba que causara un error de -1005 … pero lo hizo … Deshacerse de los parámetros innecesarios lo hizo todo ¡trabajo!

Intenté todo lo sugerido en al menos 15 respuestas de Google, pero ninguna de ellas resolvió mi problema hasta que intenté lo siguiente, lo que resolvió totalmente mi problema. Parece que las conexiones Wi-Fi pueden dañarse en la Mac, por lo que si elimina la conexión específica que está utilizando y luego vuelve a conectarse (seleccionando la red e ingresando su contraseña nuevamente) entonces esto solucionará el problema y no tendrá más miedo. “La conexión de red se perdió” errores.

  • Vaya al símbolo de Wi-Fi en la barra de menú de su Mac y apague el Wi-Fi.
  • Luego, elija “Abrir preferencias de red” (del mismo menú, en la parte inferior).
  • En la esquina inferior derecha del panel de red, selecciona “Avanzado”.
  • Seleccione la conexión de red a la que estaba conectado anteriormente.
  • Pulse el símbolo menos justo debajo de esta tabla para eliminar esta conexión.
  • Presiona “OK” para esta ventana.
  • Haga clic en “Aplicar” en la ventana de red.
  • Regrese al símbolo de Wi-Fi en su barra de menú y vuelva a encender el Wi-Fi.
  • Espere a que aparezca su conexión de red y luego selecciónela (y ahora le pedirá una contraseña nuevamente porque eliminó la información de conexión).
  • ¡Ahora recordará esta conexión recién renovada que debería resolver el problema!

Intente cambiar la serialización de solicitud en AFNetworking http o json. en mi caso, eso fue json luego me puse a http. Ahora eso está funcionando.

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

He observado que este problema ocurre cuando mantienes el simulador activo y tu Mac se queda dormida durante un período prolongado (digamos de 5 a 10 horas). Luego, de repente, ejecutas la aplicación en el simulador y muestra el registro como

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

La solución es simplemente abandonar el simulador , limpiar el proyecto y volver a ejecutar el proyecto. ¡Esto funcionó para mí!

Tuve un problema similar y reiniciar el simulador no funcionó. En mi caso, pude acceder al servicio web de forma alternativa, como en un tiempo extraño, sería exitoso y en el tiempo me arrojó con este error. Sé que es extraño, pero fue el caso de alguna manera. Lo resolvió con el siguiente enfoque en rápida:

  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() 

Solución simple y de muestra, probada muchas veces, funcionando perfecto.

// Comprueba el error de respuesta con el código de estado, y si obtienes -1005, vuelve a llamar a esa API.

  if let strErrorReasonCode : Int = response.response?.statusCode { if authentication_Errors_Range.contains(Alamofire_Error) { self.POST(urlString, patwigters: patwigters, 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) }) } }