Dans ce chapitre, nous allons découvrir la classe qui gère les requêtes en Swift : URLSession
.
Découvrez URLSession
Quand on parle de URLSession
, on parle en même temps de la classe et de la suite de classes correspondantes. En effet, il y a au moins trois classes qui fonctionnent avec URLSession
:
URLSession
;URLSessionConfiguration
;URLSessionTask
.
Ces trois classes s'articulent comme suit :
Configurez URLSession
URLSession s'initialise avec URLSessionConfiguration. C'est cette classe qui permet de configurer la session. Lors de la configuration, on essaie de répondre à ce genre de questions :
Accepte-t-on les cookies ?
Quelle est la politique de cache ?
Quel est le timeout d'une requête ?
Doit-on rajouter des éléments dans le header ? Etc.
Lancez une tâche
Une fois que URLSession
est initialisé avec la bonne configuration, il peut lancer une "tâche". Une tâche lance une requête réseau, reçoit la réponse, décide de l'interrompre, etc. Cela est géré par la classe URLSessionTask
. Elle est responsable de la gestion du cycle de vie de la requête.
Il existe plusieurs types de tâches. Pour chaque type de tâche, Apple a créé une sous-classe de URLSessionTask
:
URLSessionDataTask
: cette tâche permet d'envoyer ou de recevoir des données ;URLSessionUploadTask
: cette tâche permet d'effectuer un téléchargement ascendant : l'envoi de fichiers lourds (vidéo, enregistrement audio, etc.) vers un serveur ;URLSessionDownloadTask
: cette tâche permet d'effectuer un téléchargement descendant : la réception de fichiers lourds (vidéo, enregistrement audio, etc.) depuis un serveur.
Formatez la réponse
Une fois la requête envoyée, la réponse est formatée et disponible dans la classe URLResponse
ou dans sa sous-classe HTTPURLResponse
(spécifique aux requêtes HTTP). Vous pouvez notamment y vérifier le status code de la réponse pour vérifier que la requête a fonctionné.
Cette réponse est accompagnée d'une éventuelle erreur ( Error
) et d'éventuelles données ( Data
).
En résumé
URLSession
permet de lancer des requêtes avec les 3 sous-classes d'URLSessionTask
:URLSessionDataTask
,URLSessionUploadTask
etURLSessionDownloadTask
.URLSession
est initialisée avecURLSessionConfiguration
.URLRequest
permet de spécifier la requête : quelle URL, quelle méthode, quels paramètres, quel endpoint de l’API j’utilise, et comment.La réponse est le plus souvent disponible en trois objets :
URLResponse
(ouHTTPURLResponse
),Data
etError
.
Vous avez fait vos premiers pas avec URLSession
, bravo ! Dans le prochain chapitre, nous utiliserons la suite de classes URLSession
pour lancer notre première requête avec Swift !