Swift:
Skicka en http-förfrågan
How to:
Använd URLSession
för att hantera nätverkskommunikation. Här är ett enkelt exempel på att göra en GET-förfrågan till en JSON-API.
import Foundation
let url = URL(string: "https://api.exempel.se/data")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
if let error = error {
print("Ett fel uppstod: \(error)")
return
}
if let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 {
if let data = data,
let jsonData = try? JSONSerialization.jsonObject(with: data) {
print("Data mottagen: \(jsonData)")
}
} else {
print("Servern svarade med fel statuskod")
}
}
task.resume()
Förventad output är JSON-data som skrivs ut till konsolen, förutsatt att servern svarar korrekt.
Deep Dive
HTTP-begäran är en grundläggande del av webben; den definierades på 90-talet och är fortfarande kärnan i webbkommunikation. Det finns olika typ av förfrågningar – som GET, POST, PUT och DELETE – för olika syften. Alternativ till URLSession
inkluderar tredjepartsbibliotek som Alamofire som erbjuder mer funktionalitet med mindre kod. URLSession
är dock inbyggt och kraftfullt nog för de flesta behov, och det fungerar direkt med Swift kod utan externa beroenden.
See Also
För mer detaljerad information om hur du använder URLSession
, se Apples dokumentation:
Titta även på Alamofire för ett kraftfullt alternativ till URLSession
: