Partager via


Gestion de code d’état avec Web.Contents

La Web.Contents fonction dispose d’une fonctionnalité intégrée pour traiter certains codes d’état HTTP. Vous pouvez modifier le comportement par défaut dans votre extension en utilisant le champ ManualStatusHandling dans l'enregistrement d'options.

Nouvelle tentative automatique

Web.Contents retente automatiquement les demandes qui échouent avec l’un des codes d’état suivants :

Code État
408 Délai de demande
429 Trop de demandes
503 Service indisponible
504 Délai d’expiration de passerelle
509 Limite de bande passante dépassée

Les demandes seront retentées jusqu’à trois fois avant d’échouer. Le moteur utilise un algorithme de temporisation exponentiel pour déterminer la durée d’attente jusqu’à la nouvelle tentative suivante, sauf si la réponse contient un en-tête Retry-after. Quand l’en-tête est trouvé, le moteur attend le nombre spécifié de secondes avant d’effectuer la tentative suivante. Le temps d’attente pris en charge est compris entre 0,5 et 120 secondes.

Remarque

La valeur Retry-after doit être au format delta-seconds. Le format HTTP-date n’est pas prise en charge actuellement.

Exceptions d’authentification

Les codes d’état suivants entraînent une exception d’informations d’identification, provoquant une invite d’authentification demandant à l’utilisateur de fournir des informations d’identification (ou de se reconnecter dans le cas d’un jeton OAuth expiré).

Code État
401 Non autorisé
403 Interdit

Remarque

Les extensions peuvent utiliser l’option ManualStatusHandling avec les codes d’état 401 et 403, ce qui n’est pas quelque chose qui peut être fait dans Web.Contents les appels effectués en dehors d’un connecteur de données personnalisé (c’est-à-dire directement à partir de Power Query).

Redirection

Les codes d’état suivants entraîneront une redirection automatique vers l’URI spécifié dans Location l’en-tête. Un en-tête Location manquant génère une erreur.

Code État
300 Choix multiples
301 Déplacé de façon permanente
302 Trouvé
303 Afficher d’autres
307 Redirection temporaire

Remarque

Seul le code d’état 307 conserve une méthode de demande POST. Tous les autres codes d’état de redirection entraînent un basculement vers GET.