files app iphone objective-c cocoa-touch

app - ¿Puedo hacer solicitudes POST o GET desde una aplicación iphone?



files app iphone (2)

Si está utilizando Objective C, necesitará usar las clases NSURL, NSURLRequest y NURLConnection. Apple NSURLRequest doc . HttpRequest es para JavaScript.

¿Hay alguna manera de usar el SDK de iPhone para obtener los mismos resultados que los métodos HTTP POST o GET?


Suponga que su clase tiene una variable de instancia responseData , luego:

responseData = [[NSMutableData data] retain]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.domain.com/path"]]; [[NSURLConnection alloc] initWithRequest:request delegate:self];

Y luego agrega los siguientes métodos a tu clase:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { [responseData setLength:0]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [responseData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { // Show error } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { // Once this method is invoked, "responseData" contains the complete result }

Esto enviará un GET. Para cuando se llame al método final, responseData contendrá la respuesta HTTP completa (convertir a cadena con [[NSString alloc] initWithData: encoding:].

Alternativamente, para POST, reemplace el primer bloque de código con:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.domain.com/path"]]; [request setHTTPMethod:@"POST"]; NSString *postString = @"Some post string"; [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];