AFNetworking con el código de error de request 999

Soy nuevo en objective-c y estoy pasando un mal rato con una AFNetworking.

Entonces, la cuestión es que quiero hacer una simple request POST a un server que me enviará una sal. Haré una aplicación simple, para probar mi request, pero no entiendo por qué recibo el código de error 999.

Aquí una muestra de mi código.

+ (void)simpleRequest; { NSURL *mailserver = [NSURL URLWithString:@"https://localhost:4443/"]; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithBaseURL:mailserver]; manager.securityPolicy.allowInvalidCertificates = TRUE; manager.responseSerializer = [AFJSONResponseSerializer serializer]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; NSDictionary *parameters = @{@"username": @"testtest"}; [manager POST:@"api/v0/login/salt" parameters:parameters success:^(NSURLSessionDataTask *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionDataTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; } 

He vinculado este código a un simple button que llama a esta function.

Tengo otra aplicación, en movimiento Ruby, que funciona con esta function, puedo get la respuesta sin ningún error. Pero con esta aplicación simple no puedo hacer ninguna request, todos devolvieron este código de error 999.

Error: Error Domain = NSURLErrorDomain Code = -999 "canceled" UserInfo = {NSErrorFailingURLKey = https: // localhost: 4443 / api / v0 / login / salt , NSLocalizedDescription = canceled, NSErrorFailingURLStringKey = https: // localhost: 4443 / api / v0 / login / salt }

Entonces, realmente me pregunto qué estoy haciendo mal, ¿alguien puede ayudarme en esto? Gracias

EDITAR:

¿Es la buena manera de salvar al gerente en una propiedad o estoy haciendo algo mal? Si es la buena manera, esto parece no funcionar. Gracias por la ayuda.

file .h

 @property (nonatomic, retain) AFHTTPSessionManager *session; 

file .m

 @synthesize session; - (IBAction)log:(id)sender { NSURL *mailserver = [NSURL URLWithString:@"https://localhost:4443/"]; self.session = [[AFHTTPSessionManager alloc]initWithBaseURL:mailserver]; self.session.securityPolicy.allowInvalidCertificates = TRUE; self.session.responseSerializer = [AFJSONResponseSerializer serializer]; self.session.requestSerializer = [AFJSONRequestSerializer serializer]; NSDictionary *parameters = @{@"username": @"testtest"}; [self.session POST:@"api/v0/login/salt" parameters:parameters success:^(NSURLSessionDataTask *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(NSURLSessionDataTask *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

En mi caso, la " Seguridad de transporte de aplicaciones " de iOS 9 SDK causa un código de error AFNetworking: -999 . Si está intentando llegar a un server que no tiene keys de agregar SSL como la siguiente captura de pantalla.

introduzca la descripción de la imagen aquí

En mi caso, el iOS 10 SDK causa el código de error AFNetworking: -999. Si está intentando llegar a un server que tiene un SSL y no quiere comprobarlo, agregue alguna Política de privacidad a Afnetworking.

 AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; securityPolicy.allowInvalidCertificates = YES; [securityPolicy setValidatesDomainName:NO]; 

Es un error -999, no 999. Eso es NSURLErrorCancelled . Su request ha sido cancelada antes de que se pueda completar.

Al mirar su código, no está reteniendo el AFHTTPSessionManager *manager ningún lado. Esto significa que el administrador se eliminará tan pronto como +simpleRequest . Supongo que esto es lo que está cancelando su request.

Debe save el administrador para que viva durante la duración completa de la request. Guárdelo en una propiedad en algún lugar.