Swift:
Envoi d'une requête HTTP
How to:
Envoyer une requête GET simple
import Foundation
import UIKit
let url = URL(string: "https://api.example.com/data")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("Erreur de requête: \(error)")
return
}
guard let httpResponse = response as? HTTPURLResponse, (200...299).contains(httpResponse.statusCode) else {
print("Réponse serveur non valide.")
return
}
if let mimeType = httpResponse.mimeType, mimeType == "application/json",
let data = data {
// Traitez ici vos données JSON...
print("Données reçues: \(data)")
}
}
task.resume()
Résultat attendu
Données reçues: <...data in some format...>
Deep Dive
HTTP est le fondement du web. Créé au début des années 90, il permet l’échange d’infos entre clients et serveurs. Swift utilise URLSession
pour faire des requêtes réseau. C’est puissant, flexible et adapté pour iOS, macOS, watchOS, et tvOS.
Outre GET, vous avez POST, PUT, DELETE, etc. Chacun a son rôle pour créer, lire, mettre à jour et supprimer des données. En Swift, vous pouvez customiser les requêtes à fond – timeout, en-têtes HTTP, gestion de la session, et plus encore.
URLSession
est un remplaçant au NSURLConnection
déprécié. Swift propose aussi des alternatives modernes telles que les frameworks Alamofire ou Moya. Ces frameworks simplifient souvent le code réseau, mais URLSession
reste canon.
See Also
- Documentation officielle de URLSession: Apple Developer Documentation
- Alamofire, un HTTP networking library pour Swift: Alamofire on GitHub
- Article sur les patterns de conception réseau en Swift: Ray Wenderlich - Networking