Publicación de datos JSON utilizando AFNetworking 2.0

Tengo un script web que acepta cadena JSON como entrada a través de la solicitud HTTP POST. He encontrado varios ejemplos de AFNetworking 1.x para el mismo, ¿alguien me puede señalar o dar ejemplo de AFNetworking 2.0 para hacer una solicitud HTTP POST a un script web con JSON formateado como entrada?

Gracias

después de buscar documentos y probar algunos códigos que obtuve siguiendo como ejemplo

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; NSDictionary *params = @ {@"user" :txtUserName, @"pwd" :txtPwd }; [manager POST:URL_SIGNIN parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure: ^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; 

Además, no olvide configurar el tipo de encabezado de respuesta en el script del servidor como Application / json.

Aquí hay una plantilla simple para los parámetros POST almacenados en los parámetros NSMutableDictionary en formato JSON. Funciona con AFNetworking 2.4.1.

 NSString *baseURL = @"http://your-server.com/"; NSString *path = @"method/url/"; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setObject:@"value" forKey:@"key"]; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; [manager POST:path parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) { NSLog(@"JSON: %@", responseObject); //here is place for code executed in success case } failure:^(NSURLSessionDataTask *task, NSError *error) { //here is place for code executed in error case UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error while sending POST" message:@"Sorry, try again." delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alertView show]; NSLog(@"Error: %@", [error localizedDescription]); }]; 

Si desea enviar json al servidor, debe publicar sus parámetros de esta manera a continuación.

De esta manera, puede descubrir que el “Tipo de contenido” en el encabezado de su solicitud es “application / json”.

 AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer]; [serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; manager.requestSerializer = serializer; NSDictionary *paras = @{@"uid" : @(10020)}; [manager POST:@"http://your.request.url" parameters:paras success:^(AFHTTPRequestOperation *operation, id responseObject) { }failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"the falire is %@", error); }]; 

Que esto ayude 🙂

En rápido:

Agregue esto en manager.AFHTTPRequestOperationManager

 manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions.PrettyPrinted) 

si desea publicar el diccionario de parámetros json string use el siguiente código

 NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"your_webservice_post_url"]]; [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; NSError *error; NSDictionary *parameters = @{@"customValue":@"value"}; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:&error]; [urlRequest setHTTPMethod:@"POST"]; [urlRequest setHTTPBody:jsonData];