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
.