Cadena POST JSON en el cuerpo de la request (no en la request codificada en la URL) AFNetworking

Quiero enviar una cadena JSON al server utilizando la request POST AFNetworking. Actualmente estoy probando el siguiente código

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; NSData * data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:data]; [request setTimeoutInterval:120]; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; AFHTTPRequestOperation *operation = [manager HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; [operation start];` 

Nada esta pasando. El código no entra en el bloque de éxito ni en el bloque de falla . cual puede ser la razon? ¿Existe alguna forma alternativa de hacerlo en AFNetworking 2. NOTA: La request funciona perfectamente en POSTMAN y devuelve la respuesta en less de 500 ms.

Este es el código de trabajo mío

 NSDictionary *parameters = [NSDictionary dictionary];//set values here AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] init]; [manager POST:@"http://example.com/api" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { //Do success code } failure:^(AFHTTPRequestOperation *operation, NSError *error) { //do failure code }]; 

Esta es la function que configura el cuerpo HTTP AFJSONRequestSerializer

 #pragma mark - AFURLRequestSerialization - (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request withParameters:(id)parameters error:(NSError *__autoreleasing *)error { NSParameterAssert(request); if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) { return [super requestBySerializingRequest:request withParameters:parameters error:error]; } NSMutableURLRequest *mutableRequest = [request mutableCopy]; [self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) { if (![request valueForHTTPHeaderField:field]) { [mutableRequest setValue:value forHTTPHeaderField:field]; } }]; if (parameters) { if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) { [mutableRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; } [mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]]; } return mutableRequest; } 

Está utilizando AFJSONRequestSerializer como serializador de request y es el significado, está enviando una cadena JSON de NSDictionary como un cuerpo HTTP

 [mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]]; } 

Por lo que todos deben hacer es hacer que NSDictionary provenga de los valores de JSON, y llamar como se indicó anteriormente. No es necesario hacer una cadena JSON.