Ich nähere mich der iOS-Entwicklung und möchte eine meiner ersten Anwendungen haben, die eine HTTP-POST-Anfrage ausführt.
Soweit ich verstehen kann, sollte ich die Verbindung, die die Anforderung verarbeitet, über ein NSURLConnection
Objekt verwalten, wodurch ich gezwungen bin, ein Delegatenobjekt zu haben, das wiederum Datenereignisse verarbeitet.
Könnte jemand bitte die Aufgabe mit einem praktischen Beispiel klären?
Ich sollte mich an einen https-Endpunkt wenden, der Authentifizierungsdaten (Benutzername und Kennwort) sendet und eine Klartextantwort zurückerhält.
quelle
didReceiveAuthenticationChallenge
. Gibt es Sicherheitsprobleme mit fest codierten Passwörtern / Benutzernamen? Gibt es einen Weg daran vorbei?BEARBEITEN: ASIHTTPRequest wurde vom Entwickler aufgegeben. Es ist immer noch sehr gut, IMO, aber Sie sollten jetzt wahrscheinlich woanders suchen.
Ich würde die Verwendung der ASIHTTPRequest-Bibliothek wärmstens empfehlen, wenn Sie mit HTTPS arbeiten. Selbst ohne https bietet es einen wirklich schönen Wrapper für solche Dinge, und obwohl es nicht schwer ist, sich über einfaches http hinwegzusetzen, finde ich die Bibliothek einfach nett und eine großartige Möglichkeit, um loszulegen.
Die HTTPS-Komplikationen sind in verschiedenen Szenarien alles andere als trivial. Wenn Sie alle Variationen robust handhaben möchten, ist die ASI-Bibliothek eine echte Hilfe.
quelle
Ich dachte, ich würde diesen Beitrag ein wenig aktualisieren und sagen, dass ein Großteil der iOS-Community zu AFNetworking gewechselt ist, nachdem er
ASIHTTPRequest
aufgegeben wurde. Ich empfehle es sehr. Es ist ein großartiger WrapperNSURLConnection
und ermöglicht asynchrone Anrufe und im Grunde alles, was Sie benötigen.quelle
Hier ist eine aktualisierte Antwort für iOS7 +. Es verwendet NSURLSession, die neue Schärfe. Haftungsausschluss, dies ist ungetestet und wurde in ein Textfeld geschrieben:
Oder noch besser, verwenden Sie AFNetworking 2.0+. Normalerweise würde ich AFHTTPSessionManager unterordnen, aber ich fasse dies alles in einer Methode zusammen, um ein kurzes Beispiel zu erhalten.
Wenn Sie den JSON-Antwortserialisierer verwenden, ist das responseObject ein Objekt aus der JSON-Antwort (häufig NSDictionary oder NSArray).
quelle
HINWEIS: Beispiel für Pure Swift 3 (Xcode 8): Probieren Sie den folgenden Beispielcode aus. Es ist das einfache Beispiel für die
dataTask
Funktion vonURLSession
.quelle
Xcode 8 und Swift 3.0
Verwenden von URLSession:
URLSession Delegate-Aufruf:
Verwenden des Blocks GET / POST / PUT / DELETE:
Funktioniert gut für mich .. versuchen Sie es 100% Ergebnisgarantie
quelle
So funktioniert die POST-HTTP-Anforderung für iOS 8+ mit NSURLSession:
Hoffe, dass dies Ihre folgenden Anforderungen erfüllt.
quelle