Gérer les codes d’état à l’aide de Web.Contents

La fonction Web.Contents offre certaines fonctionnalités intégrées pour traiter certains codes d’état HTTP. Vous pouvez remplacer le comportement par défaut dans votre extension à l’aide du ManualStatusHandling champ dans l’enregistrement d’options.

Nouvelle tentative automatique

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

Code Statut
408 Délai d’attente de la requête
429 Trop de demandes
503 Service indisponible
504 Délai d’expiration de la passerelle
509 Limite de bande passante dépassée

La fonction réessaye de demander jusqu’à trois fois avant d’échouer. Le moteur utilise un algorithme d’interruption exponentielle pour déterminer la durée d’attente jusqu’à la nouvelle tentative suivante, sauf si la réponse contient un Retry-after en-tête. Lorsque l’en-tête est trouvé, le moteur attend le nombre spécifié de secondes avant la nouvelle tentative suivante. La durée d’attente minimale prise en charge est de 0,5 secondes et la valeur maximale est de 120 secondes.

Note

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

Exceptions d’authentification

Les codes d’état suivants provoquent une exception liée aux informations d’identification. L’exception invite l’utilisateur à fournir des informations d’identification ou à se reconnecter si un jeton OAuth a expiré.

Code Statut
401 Non autorisé
4:03 Interdit

Note

Les extensions peuvent utiliser l’option ManualStatusHandling avec les codes d’état 401 et 403. Vous ne pouvez pas utiliser cette option dans les appels Web.Contents effectués en dehors d’un connecteur de données personnalisé (c’est-à-dire directement depuis Power Query).

Redirection

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

Code Statut
300 Choix multiples
301 Déplacé définitivement
302 Trouvé
303 Voir d’autres
307 Redirection temporaire

Note

Seul le code d’état 307 conserve une POST méthode de requête. Tous les autres codes d’état de redirection basculent vers GET.