Tengo una determinada URL "http://dev.miempresa.com" y necesito enviarle algunos datos (en formato JSON) y obtener la respuesta.

No puedo encontrar mi camino a través de la enorme cantidad de documentación y preguntas relacionadas aquí en SO. Logré obtener los datos (sin enviar ningún dato) con NSURLConnection y funciona bien, el código que tengo hasta ahora es casi el mismo que en https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection. html y, por lo tanto, no veo ningún sentido en publicar el código que tengo.

No puedo agregar una cadena a mi URL porque los datos que necesito enviar son datos JSON. Lo siento si sueno como un novato, pero tengo muy poca experiencia en Obj-C y comunicación con el servidor.

2
Hku 2 jun. 2012 a las 21:35

1 respuesta

La mejor respuesta

Debe enviarlos como parámetro a una publicación NSUrlRequest

De siguiente modo:

NSURL *aUrl = [NSURL URLWithString:@"http://dev.mycompany.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl
                                         cachePolicy:NSURLRequestUseProtocolCachePolicy
                                     timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];
NSString *postString = @"yourVarialbes=yourvalues";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request 
                                                             delegate:self];
[connection start];

Para enviar JSON Pelase leer Cómo enviar datos json en la solicitud Http usando NSURLRequest

4
Community 23 may. 2017 a las 15:12
Mi aplicación falló (SIGABRT). El registro dice: *** Finalizando la aplicación debido a una excepción no detectada 'NSInvalidArgumentException', motivo: '- [NSURLRequest setHTTPMethod:]: selector no reconocido enviado a la instancia
 – 
Hku
2 jun. 2012 a las 21:50
No importa, mi problema fue que intenté inicializar un objeto Mutable con su contraparte no mutable. (En este caso: NSMutableURLRequest)
 – 
Hku
2 jun. 2012 a las 21:59
Lo siento, edité la respuesta :), no olvides aceptar :)
 – 
Omar Abdelhafith
2 jun. 2012 a las 22:00
Omar, después de golpearme la cabeza contra la pared durante otros 30 minutos, preguntándome por qué el servidor parecía ignorar mi postString, descubrí que necesitas llamar a setHTTPMethod y setHTTPBody antes de declarar el connection . ¡Finalmente funciona según lo previsto!
 – 
Hku
2 jun. 2012 a las 22:45
No lo probé en un servidor en vivo: S, me alegro de que ahora haya funcionado :) perdón por los 30 minutos perdidos: S
 – 
Omar Abdelhafith
2 jun. 2012 a las 22:46