Soy nuevo en el objetivo-c y estoy comenzando a poner mucho esfuerzo en la solicitud/respuesta en fecha reciente. Tengo un ejemplo de trabajo que puede llamar a una url (a través de http GET) y analizar el json devuelto.Cómo enviar datos json en la solicitud Http usando NSURLRequest
El ejemplo práctico de esto es por debajo de
- (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 {
NSLog([NSString stringWithFormat:@"Connection failed: %@", [error description]]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
//do something with the json that comes back ... (the fun part)
}
- (void)viewDidLoad
{
[self searchForStuff:@"iPhone"];
}
-(void)searchForStuff:(NSString *)text
{
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.whatever.com/json"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
Mi primera pregunta es - escalará hasta este enfoque? ¿O no es asincrónico (es decir, bloqueo el hilo de la interfaz de usuario mientras la aplicación está esperando la respuesta)
Mi segunda pregunta es: ¿cómo podría modificar la parte de la solicitud para hacer una POST en lugar de GET? ¿Es simplemente modificar HttpMethod como tal?
[request setHTTPMethod:@"POST"];
Y finalmente - ¿cómo puedo añadir un conjunto de datos JSON para este post como una cadena sencilla (por ejemplo)
{
"magic":{
"real":true
},
"options":{
"happy":true,
"joy":true,
"joy2":true
},
"key":"123"
}
gracias de antemano
Aquí hay un tutorial: http: // mobileorchard .com/tutorial-json-over-http-on-the-iphone/ – Josh