Ich versuche, Swift zu verwenden, um einen GET-Aufruf einer REST-API durchzuführen, und habe versucht, zahlreichen Tutorials zu folgen, kann es aber nicht herausfinden. Entweder weil ich nicht herausfinden kann, wie man das gesamte Obj-C in Swift übersetzt, oder weil die Hälfte der Methoden n 'solche veraltet sind. Weiß jemand, wie man den Anruf tätigt und zurückgegebene JSON-Daten analysiert?
92
Antworten:
Sie können dies tun:
quelle
Swift 5 & 4
quelle
Ich denke, die
NSURLSession
API passt besser in diese Situation. Denn wenn Sie schnellen Code schreiben, ist Ihr Projektziel mindestens iOS 7 und iOS 7 unterstütztNSURLSession
API. Jedenfalls ist hier der Codequelle
// Handle result
könnte sein:let resp = String( data:data!, encoding:NSUTF8StringEncoding)!
NSURLSessionConfiguration
. Ich denke, das sollte die akzeptierte Antwort sein.Hier ist der vollständige Code für REST-API-Anforderungen, die NSURLSession in Kürze verwenden
Für POST-Anfrage ...
Ich hoffe, es funktioniert.
quelle
bearbeitet für schnell 2
quelle
Swift 4 - GET Anfrage
Vergessen Sie nicht, die App Transport-Sicherheitseinstellungen so zu konfigurieren, dass Ihre Domain zu den Ausnahmen hinzugefügt wird und unsichere http-Anforderungen zugelassen werden, wenn Sie Endpunkte ohne Verwendung von HTTPS erreichen.
Sie können ein Tool wie http://www.json4swift.com/ verwenden, um Ihre codierbaren Zuordnungen aus Ihren JSON-Antworten automatisch zu generieren.
quelle
Swift 3.0
quelle
Swift 4
Erstellen Sie eine App mit Alamofire mit der Api Post-Methode
Installieren Sie die Pod-Datei -pod 'Alamofire', '~> 4.0' für Swift 3 mit Xcode 9
Erstellen Sie die Klasse Webservices.swift und importieren Sie Alamofire
Design storyBoard, Login-Ansicht
Fügen Sie den folgenden Code für die ViewControllerClass ein
Fügen Sie den folgenden Code für WebserviceClass ein
quelle
In Swift 3.3 und 4. habe ich die APIManager-Klasse mit zwei öffentlichen Methoden erstellt. Übergeben Sie einfach den erforderlichen Parameter, den API-Namen und den Anforderungstyp. Sie erhalten eine Antwort und geben diese an den Verschluss weiter.
quelle
schnell 4
VERWENDEN SIE ALAMOFIRE in unserer App plz install pod file
Pod 'Alamofire', '~> 4.0'
Wir können die API für Json-Daten verwenden - https://swapi.co/api/people/
Dann können wir eine Netzwerkklasse für unser Projekt networkService.swift erstellen
Erstellen Sie dann die Klasse NetworkingError.swift
Erstellen Sie dann die Person.swift-Klasse
Erstellen Sie dann DetailVC.swift
Erstellen Sie dann die Klasse GetPeopleResponse.swift
Dann Our View Controller Klasse
In unserem StoryBoard
plz Verbinde dich mit unserer Ansicht mit einer anderen, indem du segue mit der Kennung -peopleToDetails verwendest
Verwenden Sie UITableView in unserer ersten Ansicht
Verwenden Sie den UIButton, um die Daten abzurufen
Verwenden Sie 9 Etiketten in unserem DetailVc
quelle
Wenn Sie in Swift 3 arbeiten, ändert sich die Syntax. Das Beispiel hier hat für mich funktioniert und enthält eine gute Erklärung der Schritte: https://grokswift.com/simple-rest-with-swift/
Dies ist der Code aus diesem Tutorial:
quelle
API-Aufruf mit Modellklasse
Erstellen Sie eine Variable und verbinden Sie sich mit der Modellklasse
Modellklasse erstellen Neu -> schnelle Klasse
}}
dann können wir uns mit unseren Tabellenansichtsobjekten verbinden
quelle
quelle