POST mit NSURLConnection - KEIN JSON
Ich bin versucht zu schreiben, eine iPhone app in Objective-C. ich brauche, um POST-Daten Verwendung von NSURLConnection. Jedes Beispiel, das ich finden kann, beschäftigt sich mit JSON; ich brauche nicht zu JSON verwenden. Alle, die ich tun müssen, ist POST die Daten und bekommen ein einfaches 1 oder 0 (erfolgreich oder nicht) von einem PHP-Skript. Nichts mehr.
Stieß ich auf diesen code, aber ich bin nicht sicher, wie Sie Sie verwenden oder ändern Sie es nicht verwenden, JSON:
- (void)performRequest {
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://someplace.com/"]];
[request setValue:@"Some Value" forHTTPHeaderField:@"Some-Header"];
[request setHTTPBody:@"{\"add_json\":\"here\"}"];
[request setHTTPMethod:@"POST"];
[NSURLConnection connectionWithRequest:[request autorelease] delegate:self];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
//Fail..
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
//Request performed.
}
InformationsquelleAutor whitebreadb | 2012-01-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie ein gewöhnlicher post.
Erstellen Sie zunächst eine Anfrage von der richtigen Art:
Nun formatieren Sie Ihre post-Daten als URL-codierte Zeichenfolge, wie dieses:
Erinnern Kodierung der einzelnen Parameter mit Hilfe von Prozent-Codierung. Können Sie nicht völlig verlassen sich auf die NSString stringByAddingPercentEscapesUsingencoding Methode für diese (google, um herauszufinden, warum), aber es ist ein guter Anfang.
Nun fügen wir die post-Daten zu Ihrer Anfrage:
Und das ist es, jetzt, senden Sie einfach Ihre Anfrage wie gewohnt mit NSURLConnection (oder was auch immer).
Zu interpretieren, die Antwort kommt zurück, siehe Maudicus Antwort.
[request addValue:[NSString stringWithFormat:@"%lu", (unsigned long)[data length]] forHTTPHeaderField:@"Content-Length"];
. Hinzugekommen ist ein explizites " cast tounsigned long
und verändert%i
zu%lu
. Siehe diese Frage für die Erklärung.InformationsquelleAutor Nick Lockwood
Können Sie die folgenden NSURLConnection Methode, wenn Sie Ziel-ios-2.0 - 4.3 (Es scheint, als veraltet in ios 5)
InformationsquelleAutor Jesse Black
Ich habe eine sehr ähnliche situation zu whitebreadb. Ich bin nicht uneins mit den Antworten eingereicht und angenommen, aber möchte nach meinen eigenen wie der code hier hat bei mir nicht funktioniert (mein PHP-Skript berichtet die eingereichten parameter als Zeichenfolge mit der Länge null), aber ich fand diese Frage das hat geholfen.
Ich diese verwendet, um führen Sie eine Buchung auf mein PHP-Skript:
InformationsquelleAutor Todd