Error de respuesta al usar AFHTTPRequestOperationManager

Cuando intenté llamar a la API (AFHTTPRequestOperationManager) para el método de authentication con el nombre de usuario y la contraseña exactos, recibí una respuesta exacta y el método fue exitoso. Luego lo intenté con el nombre de usuario y la contraseña no válidos. Estoy recibiendo la respuesta es un error.

Probé API ASIHTTPRequest para el mismo método, está funcionando bien. Por favor, consulte la request y la respuesta a continuación y me aconseja cómo resolver estos problemas. Pero en AFHTTPRequestOperationManager, la respuesta inválida del usuario es un error.

ASIHTTPRestest muestra de CALL:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[ NSURL URLWithString:[ShanetworkingUtil URLByKey:@"A_URL"]]]; request.shouldAttemptPersistentConnection=NO; [request setRequestMethod:@"POST"]; [request addRequestHeader:@"enctype" value:@"application/x-www-form-urlencoded"]; [request addRequestHeader:@"Authorization" value:[ShanetworkingUtil authorizationHeader ]]; [request addRequestHeader:@"Accept" value:@"application/json"]; [request setValidatesSecureCertificate:NO]; [request setPostValue:@"pa" forKey:@"type"]; [request setPostValue:username forKey:@"username"]; [request setPostValue:password forKey:@"password"]; [request setDelegate:self]; [request setTimeOutSeconds:120]; [self setTimer]; [request setDidFinishSelector: @selector(responseAuthUserSuccess:)]; [request setDidFailSelector: @selector(responseAuthUserFailed:)]; [post release]; // Cancels an asynchronous request [networkQueue addOperation: request]; 

La respuesta es ASIHTTPRequest y el método es exitoso.

{"error": "invalid_grant", "error_description": "No se puede validar el usuario sdsdds@gmail.com"}

Uso de AFHTTPRequestOperationManager Ejemplo de LLAMADA:

 AFHTTPRequestOperationManager *managerAF = [AFHTTPRequestOperationManager manager]; NSDictionary *params = @{ @"type": @"pa", @"username": username, @"password": password }; [managerAF.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [managerAF.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"enctype"]; [managerAF.requestSerializer setValue:[ShanetworkingUtil authorizationHeader] forHTTPHeaderField:@"Authorization"]; managerAF.responseSerializer = [AFJSONResponseSerializer serializer]; managerAF.securityPolicy.allowInvalidCertificates = YES; [[UIApplication shanetworkingApplication] setNetworkActivityIndicatorVisible:YES]; [managerAF POST:[ShanetworkingUtil URLByKey:@"A_URL"] parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSData* data=[operation.responseString dataUsingEncoding:NSUTF8StringEncoding]; } [[UIApplication shanetworkingApplication] setNetworkActivityIndicatorVisible:NO]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); [self stopTimer]; }]; 

AFHTTPRequestOperationManager La respuesta y el método son fallas:

 Printing description of error: Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)" UserInfo=0xd3b7670 {NSErrorFailingURLKey=https://example.com/token, com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0xd29a010> { URL: https://example.com/token } { status code: 400, headers { "Cache-Control" = "no-store"; Connection = "keep-alive"; "Content-Type" = "application/json;charset=UTF-8"; Date = "Fri, 25 Jul 2014 05:15:19 GMT"; Pragma = "no-cache"; Server = "nginx/1.6.0"; "Transfer-Encoding" = Identity; "X-Powenetworking-By" = "Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.2.2 Java/Oracle Corporation/1.7)"; } }, NSLocalizedDescription=Request failed: bad request (400)} 

Si golpeas tu bloque de falla porque el api tu hit está devolviendo un código de respuesta HTTP de 400 y AFNetworking está interpretando correctamente eso como un error. Puede get los datos más detallados de la respuesta utilizando las properties responseData y responseString del object AFHTTPRequestOperation proporcionado en el bloque de falla.