Del via


Statuskodehåndtering med Web.Contents

Funktionen Web.Contents har indbygget funktionalitet til at håndtere visse HTTP-statuskoder. Standardadfærden kan tilsidesættes i din udvidelse ved at bruge ManualStatusHandling feltet i optionsposten.

Automatisk genprøvning

Web.Contents vil automatisk forsøge anmodninger igen, der fejler, med en af følgende statuskoder:

Kode Status
408 Anmod om timeout
429 For mange anmodninger
503 Service ikke tilgængelig
504 Gateway Timeout
509 Båndbreddegrænsen overskredet

Anmodninger vil blive forsøgt igen op til tre gange, før de fejler. Motoren bruger en eksponentiel back-off-algoritme til at bestemme, hvor længe der skal ventes på næste forsøg, medmindre svaret indeholder en Retry-after header. Når headeren findes, venter motoren det angivne antal sekunder før næste forsøg. Den minimale understøttede ventetid er 0,5 sekunder, og den maksimale værdi er 120 sekunder.

Notat

Værdien Retry-after skal være i formatet delta-seconds . Formatet HTTP-date understøttes i øjeblikket ikke.

Autentificeringsundtagelser

Følgende statuskoder vil resultere i en undtagelse for legitimationsoplysninger, hvilket får en autentificeringsprompt til at bede brugeren om at oplyse legitimationsoplysninger (eller logge ind igen i tilfælde af et udløbet OAuth-token).

Kode Status
401 Uautoriseret
403 Ikke tilladt

Notat

Udvidelser kan bruge muligheden ManualStatusHandling med statuskoderne 401 og 403, hvilket ikke kan gøres i Web.Contents kald uden for en brugerdefineret dataconnector (altså direkte fra Power Query).

Omdirigering

Følgende statuskoder vil resultere i en automatisk omdirigering til den URI, der er angivet i Location headeren. En manglende Location header vil resultere i en fejl.

Kode Status
300 Multiple Choice-muligheder
301 Flyttet permanent
302 Grundlægge
303 Se Andet
307 Midlertidig omdirigering

Notat

Kun statuskode 307 vil beholde en POST anmodningsmetode. Alle andre omdirigeringsstatuskoder vil resultere i et skift til GET.