Anfrage mit NSURLRequest
Ich versuche es mit einer App, die eine Datenbank verwendet (tatsächlich in meinem localhost). Ich habe es mit ASIHTTPRequest versucht, hatte aber so viele Probleme mit iOS 5 (ich habe dort gelernt, wie man ASIHTTPRequest verwendet:http://www.raywenderlich.com/2965/how-to-write-an-ios-app-that-uses-a-web-service
Jetzt versuche ich es mit der von Apple bereitgestellten API: NSURLRequest / NSURLConnection etc, ...
Ich habe den Apple Online-Leitfaden gelesen und den folgenden ersten Code erstellt:
<code>- (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]; } } </code>
Ich habe die von der API benötigten Delegaten hinzugefügt
<code>- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data - (void)connection:(NSURLConnection *)connection - (void)connectionDidFinishLoading:(NSURLConnection *)connection </code>
Hier ist mein PHP-Code:
<code><?php if(isset($_REQUEST["myVariable"])) { echo $_REQUEST["myVariable"]; } else echo '$_REQUEST["myVariable"] not found'; ?> </code>
Also, was ist los? Wenn ich die App starte, stürzt sie sofort mit der folgenden Ausgabe ab:
**
<code>**> 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** </code>
**
Ich denke, es bedeutet, dass mit dieser Zeile etwas nicht stimmt:
<code>[request setValue:@"Hello world !" forKey:@"myVariable"]; </code>
Es funktioniert tatsächlich, wenn ich diese Zeile kommentiere.
Meine Frage ist: Wie kann ich mit NSURLRequest und NSURLConnexion Daten an eine PHP-API senden?
Danke für die Hilfe.
P.S. Übrigens habe ich schlechte Kenntnisse über Server, PHP ect, ...