Ich versuche, Daten an einen PHP-Webdienst zu senden.
Ich bin vertraut tun dies in HTML mit Abfrage $ .post, aber ich bin sehr ratlos versucht dies in Ziel C. Ich habe versucht, mehrere Blogs & Fragen auf Stackoverflow gefunden.Veröffentlichen Sie Daten in Objective C mit JSON
Ich kam schließlich mit dem folgenden Code auf:
NSString *jsonRequest = [NSString stringWithFormat:@"{\"Email\":\"%@\",\"FirstName\":\"%@\"}",user,fname];
NSLog(@"Request: %@", jsonRequest);
NSURL *url = [NSURL URLWithString:@"http:myurl..."];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
ich auch versucht:
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest: Anfrage Delegat: self];
Mein Webdienst erstellt einen neuen Benutzer für den Post und gibt die Benutzer-ID zurück. Beide führen den Webdienstaufruf erfolgreich durch (eine neue Benutzer-ID wird erstellt), jedoch werden die Daten nicht hochgeladen, d. H. Es wird jedes Mal ein leerer Benutzer erstellt.
Bitte sagen Sie mir, wenn ich etwas vermisse.
Danke.
Meine andere Versuche:
NSMutableURLRequest *request =
[[NSMutableURLRequest alloc] initWithURL:
[NSURL URLWithString:@"myUrl.. "]];
[request setHTTPMethod:@"POST"];
NSString *postString = @"[email protected]&FirstName=Test";
[request setValue:[NSString
stringWithFormat:@"%d", [postString length]]
forHTTPHeaderField:@"Content-length"];
[request setHTTPBody:[postString
dataUsingEncoding:NSUTF8StringEncoding]];
[[NSURLConnection alloc]
initWithRequest:request delegate:self];
Ich löste schließlich das Problem: schließlich herausgefunden, was falsch war. Ich benutzte http://mypath?params=123 als meine URL. Ich habe nicht die komplette URL (nie in anderen Sprachen gebraucht). Aber hier musste ich htt geben: //mypath/index.php params = 123
wird Ihr Server richtig funktioniert? –
ja sehr viel .. Wie ich in meiner Frage erwähnt habe, mache ich das sehr erfolgreich mit jquery. Auch in diesem Fall, wenn Objective C verwendet wird, antwortet der Server mit einer Benutzer-ID, er akzeptiert nur die von mir geposteten Daten nicht. – Praneeta
Wenn ich ein Wörterbuch wie NSMutableDictionary erstellen * parms = [NSMutableDictionary Wörterbuch]; [parms setObject: [E-Mail-Text] forKey: @ "Email"]; [parms setObject: [Vorname text] forKey: @ "FirstName"]; [parms setObject: [Nachname Text] forKey: @ "Nachname"]; würde es eine Möglichkeit geben, es in NSData zu konvertieren und es zu posten? Würde das besser funktionieren, anstatt einen JSON-String zu posten? – Praneeta