Con AFNetworking es muy fácil leer respuestas en XML o JSON que entregue un servidor.
Aquí un ejemplo con XML:
Primero deben bajar el AFNetworking a su computador desde el link:
https://github.com/AFNetworking/AFNetworking
Una vez descargada, descomprime la carpeta. Ahora contaras con una carpeta con un nombre similar (o igual) a: AFNetworking-AFNetworking-211cdfc
Ahora anda a XCode, selecciona tu proyecto, anda a Archivo y haz clic en la opción "Agregar archivo a <nombre_de_tu_proyecto>". Ahi busquen la carpeta AFNetworking-AFNetworking-211cdfc, ábranla y seleccionen la carpeta AFNetworking que está adentro.
Ya estás listo para empezar a conectarte con tu servidor.
Para empezar debes agregar los archivos al encabezado:
#import "AFXMLRequestOperation.h"
#import "AFHTTPClient.h"
Luego debes iniciar la comunicación con el servidor y obtener el XML.
//Supongamos que deseamos enviar el mail y contraseña a nuestro servidor para obtener una respuesta cuando un usuario intenta iniciar sesión.
NSString *email = [self.txtUsername text];
NSString *contrasena = [self.txtPassword text];
//Crea un NSDictonary con los parámetros
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
email, @"email",
contrasena, @"contrasena",
nil];
//Indica la url de tu servidor
NSURL *url = [[NSURL alloc] initWithString:@"http://www.miservidor.com"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
[httpClient registerHTTPOperationClass:[AFXMLRequestOperation class]];
[httpClient setDefaultHeader:@"Accept" value:@"application/xml"];
//Indica donde se debe hacer la petición
NSMutableURLRequest *request1 = [httpClient requestWithMethod:@"POST" path:@"/iniciar_sesion" parameters:params];
AFXMLRequestOperation *operation = [AFXMLRequestOperation XMLParserRequestOperationWithRequest:request1 success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
XMLParser.delegate = self;
//Aquí leemos la respuesta del XML
[XMLParser parse];
} failure:nil];
//Aquí iniciamos la llamada
[operation start];
Ahora falta crear las funciones para parsear el archivo XML, esto se puede lograr de diferentes maneras. Aquí muestro una:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{
self.currentElement = [elementName copy];
self.ElementValue = [[NSMutableString alloc] init];
//Ejemplo de lectura
if ([elementName isEqualToString:@"algun-campo"]) {
// hacer algo, ejemplo imprimir un mensaje...
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[self.ElementValue appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"algun-campo"]){
//hacer alguna acción, por ejemplo:
NSLog(self.ElementValue);
}
}
Cualquier cosa dejen un comentario!