Estoy tratando de hacer para una aplicación que utiliza una base de datos (en realidad en mi localhost), me trató con ASIHTTPRequest pero que tienen tanto problemas con iOS 5 (he aprendido cómo utilizar la forma ASIHTTPRequest allí: http://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-servicecon NSURLRequest
Ahora estoy tratando con la API proporcionada por Apple: NSURLRequest/NSURLConnection etc, ...
leí la guía en línea de Apple y hacer de este primer código:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL
URLWithString:@"http://localhost:8888/testNSURL/index.php"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setValue:@"Hello world !" forKey:@"myVariable"];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if (theConnection) {
receiveData = [NSMutableData data];
}
}
que añaden los delegados necesarios por la API
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
Aquí está mi código php:
<?php
if(isset($_REQUEST["myVariable"])) {
echo $_REQUEST["myVariable"];
}
else echo '$_REQUEST["myVariable"] not found';
?>
Entonces, ¿qué está mal? Cuando comienzo a la aplicación, que se colgará inmediatamente con esta salida:
**
**> 2012-04-09 22:52:16.630 NSURLconnextion[819:f803] *** Terminating app
> due to uncaught exception 'NSUnknownKeyException', reason:
> '[<NSURLRequest 0x6b32bd0> setValue:forUndefinedKey:]: this class is
> not key value coding-compliant for the key myVariable.'
> *** First throw call stack: (0x13c8022 0x1559cd6 0x13c7ee1 0x9c0022 0x931f6b 0x931edb 0x2d20 0xd9a1e 0x38401 0x38670 0x38836 0x3f72a
> 0x10596 0x11274 0x20183 0x20c38 0x14634 0x12b2ef5 0x139c195 0x1300ff2
> 0x12ff8da 0x12fed84 0x12fec9b 0x10c65 0x12626 0x29dd 0x2945) terminate
> called throwing an exception**
**
supongo, significa que algunas cosas es malo en esta línea:
[request setValue:@"Hello world !" forKey:@"myVariable"];
Realmente funciona si comento esta línea.
Mi pregunta es: ¿Cómo puedo enviar datos a una API de PHP, usando NSURLRequest y NSURLConnexion?
Gracias por ayudarnos.
P.S. Por cierto, tengo conocimientos pobres sobre el servidor, PHP etc, ...
¡Gracias por su rápida respuesta! Desafortunadamente, esto no funciona: Tengo un error antes de la compilación: "No hay interfaz @ visible para NSURLRequest declara el selector" setHTTPMethod ":/ – Edelweiss
cambie su solicitud a NSMutableURLRequest, edite mi respuesta también –
¡Bueno, la aplicación no falla! Ahora, ¿cómo puedo tener acceso a la respuesta de mi servidor? Creo que esto está en el receiveData? ¿Qué mensaje debería enviarle para obtener mi "Hola mundo"? – Edelweiss