• 12 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 24/05/2022

Découvrez URLSession

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 :

Illustration de l'articulation entre classes et suites de classes dans URLSession. URLSession s’initialise avec URLSessionConfiguration. URLSession lance 3 URLSessionTask différentes.

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  et  URLSessionDownloadTask  .

  • URLSession  est initialisée avec  URLSessionConfiguration  .

  • 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  (ou  HTTPURLResponse  ),  Data  et  Error  .

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 !

Exemple de certificat de réussite
Exemple de certificat de réussite