Looking for ios Keywords? Try Ask4Keywords

iOSNSURLSession


Remarques

La classe NSURLSession et les classes associées fournissent une API pour télécharger du contenu. Cette API fournit un ensemble complet de méthodes de délégation pour prendre en charge l'authentification et permet à votre application d'effectuer des téléchargements en arrière-plan lorsque votre application n'est pas en cours d'exécution ou, sous iOS, lorsque votre application est suspendue.

À un niveau élevé, NSURLSession est basé sur le concept de sessions et de tâches. Une tâche représente une requête unique pour une seule URL (ou un seul téléchargement vers une seule URL). Une session est un groupe de requêtes associées.

Le système d'exploitation fournit une seule session préexistante - la session partagée, qui fonctionne essentiellement comme NSURLConnection. De plus, vous pouvez créer vos propres sessions dans votre application si nécessaire.

Différentes applications utilisent des sessions de différentes manières. De nombreuses applications créent une seule session au lancement et continuent de la réutiliser. Les autres applications peuvent être en mesure d’annuler un groupe de tâches associées (par exemple, un navigateur Web annulant toutes les requêtes en attente lorsque vous fermez un onglet) et créer ainsi une session pour chaque groupe de requêtes associées.

La première étape lorsque vous utilisez NSURLSession consiste à créer un objet de configuration de session. L'objet (généralement) réutilisable contient divers paramètres de session que vous pouvez modifier pour vos besoins particuliers, tels que l'accès simultané maximal, des en-têtes supplémentaires à envoyer avec chaque requête, l'autorisation d'envoi de requêtes via la radio cellulaire (iOS uniquement), stockage des informations d'identification, version minimale de TLS et même paramètres de proxy.

Il existe trois types de configurations de session, en fonction de la manière dont vous souhaitez que la session résultante se comporte:

  • Les configurations par défaut créent des sessions qui fonctionnent comme NSURLConnection.
  • Les configurations d'arrière-plan créent des sessions dans lesquelles les demandes sont exécutées hors processus, permettant aux téléchargements de continuer même lorsque l'application n'est plus en cours d'exécution.
  • Les configurations éphémères créent des sessions qui ne mettent rien en mémoire cache sur le disque, ne stockent pas les cookies sur le disque, etc.

Lorsque vous créez une configuration d'arrière-plan, vous devez fournir un identifiant de session qui vous permet de réassocier la session d'arrière-plan ultérieurement (si votre application se ferme ou est suspendue ou fermée par le système d'exploitation). Vous ne devez pas avoir plus d'une instance d'une session avec le même identifiant actif dans votre application. En règle générale, ces configurations ne sont pas réutilisables. Toutes les autres configurations de session peuvent être réutilisées pour créer autant de sessions que vous le souhaitez. Donc, si vous devez créer plusieurs sessions avec des paramètres similaires, vous pouvez créer la configuration une fois et la réutiliser chaque fois que vous créez une nouvelle session.

Après avoir créé une session, vous pouvez créer des tâches dans cette session. Il existe trois types de tâches:

  • Les tâches de données renvoient des données en tant qu'objet NSData . Celles-ci conviennent à un usage général, mais ne sont pas prises en charge dans les sessions en arrière-plan.
  • Les tâches de téléchargement renvoient des données sous forme de fichier sur le disque. Celles-ci conviennent aux requêtes plus importantes ou aux sessions en arrière-plan.
  • Télécharger des tâches pour télécharger des données depuis un objet NSData ou depuis un fichier sur le disque. Vous fournissez un objet ou un fichier de données qui fournit le corps POST. Le fichier / données de corps que vous fournissez dans la tâche remplace tous les fichiers / données de corps fournis dans l'objet NSURLRequest (le cas échéant).

Chacun de ces types vous permet d'obtenir les données de réponse de différentes manières, soit en utilisant des rappels basés sur des blocs, soit en fournissant un délégué sur la session et en implémentant des méthodes déléguées.

De plus, NSURLSession vous permet de fournir des méthodes de délégation pour la gestion de l'authentification, la gestion personnalisée des certificats TLS (à la fois pour les certificats clients et la validation du serveur), la modification du comportement de mise en cache, etc.

NSURLSession Exemples Liés