ios - Publicación de datos JSON utilizando AFNetworking 2.0
http-post afnetworking-2 (5)
Aquí hay una plantilla simple para los parámetros POST almacenados en los parámetros NSMutableDictionary
en formato JSON. Trabaja 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]);
}];
Tengo un script web que acepta la cadena JSON como entrada a través de la solicitud HTTP POST. He encontrado varios ejemplos de AFNetworking 1.x para el mismo. ¿Alguien puede indicarme o dar el ejemplo de AFNetworking 2.0 para hacer una solicitud HTTP POST a un script web con formato JSON como entrada?
Gracias
En veloz
Agregue esto en manager.AFHTTPRequestOperationManager
manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions.PrettyPrinted)
Si desea publicar json en el servidor, debe publicar sus parámetros de la siguiente manera.
De esta manera, puede encontrar el "Tipo de contenido" en el encabezado de su solicitud: "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. :)
Si quiere publicar el diccionario de parámetros, use la cadena json siguiendo el 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];
después de buscar documentos y probar algunos códigos que obtuve a continuación 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 establecer el tipo de encabezado de respuesta en el script del servidor como Aplicación / json.