Skicka en http-förfrågan

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: