Xcode - Enviar una solicitud por NSURL

xcodeEn ios, muchas veces necesitamos interactuar con alguna informaciĆ³n de la nube; es este caso pondre un breve codigo que iremos desmenuzando para conocer una alternativa de conexion mediante el metodo GET;

Para esto vamos a utilizar el objeto NSURL;

 

De entrada no olviden que para poder ver su respuestas en consolas pueden utilizar el log;

NSLog( @" %@ ", lo_que_quiero_ver);

El codigo que vamos a analizar es el siguiente:


NSString *urlString = [NSString stringWithFormat:@"algun_sitio_con_parametros=%@", parametros];

NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10];
NSLog(@"Envio ==> %@", urlString);

NSError *error = nil;
NSURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSLog(@"Recibi ==> %@", data);

Y... como que hace ?

NSString *urlString = [NSString stringWithFormat:@"algun_sitio_con_parametros=%@", parametros];

NSString solo es la cadena; aqui estamos utilizando la variable stringWithFormat con la cual podemos agregar variables o texto que necesitemos incluir en caso de que vayamos a pedir parametros; es decir; si vamos a preguntar por peras de una clase seria normalmente:

http://algunapagina.net/?peras=rojas

El equivalente en iOs seria:

[NSString stringWithFormat: @"http://algunapagina.net/?peras=%@", variable]

Donde variable es rojas;

De esa forma podemos armar el request personalizado;

Posteriormente ya con la cadena creada; hay que definir el objeto NSURL que vamos a utilizar;

NSURL *url = [NSURL URLWithString:urlString];

Aqui no hay mayor ciencia mas que definirlo, con la cadena que hicimos anteriormente; no olviden que podemos ver lo que estamos enviando con NSLog( )

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10];

Este objeto definira que vamos a salir al mundo, con la cadena que definimos anteriormente como NSURL

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

NSData recibira la informacion al enviar la conexion; la cual se lanza con NSURLConnection;

Y #posya, vean con NSLog()  lo que estan recibiendo, no es la supertarea pero conforme pongan mas parametros se podria poner interesante; mas tarde pongo la peticion POST y la lectura de un JSON desde iOS7;

Intentenlo y comenten como les fue;

Para mayor referencia

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html

Back to Top