Verwerking van statuscode met Web.Contents
De Web.Contents
functie heeft een aantal ingebouwde functionaliteit voor het omgaan met bepaalde HTTP-statuscodes. Het standaardgedrag kan worden overschreven in uw extensie met behulp van het ManualStatusHandling
veld in de optiesrecord.
Automatisch opnieuw proberen
Web.Contents
zal aanvragen die mislukken automatisch opnieuw proberen met een van de volgende statuscodes:
Code | Status |
---|---|
408 | Time-out aanvraag |
429 | Te veel aanvragen |
503 | Service niet beschikbaar |
504 | Time-out van gateway |
509 | Bandbreedtelimiet overschreden |
Aanvragen worden maximaal drie keer opnieuw geprobeerd voordat het mislukt. De engine maakt gebruik van een exponentieel back-off-algoritme om te bepalen hoe lang moet worden gewacht tot de volgende nieuwe poging, tenzij het antwoord een Retry-after
header bevat. Wanneer de header wordt gevonden, wacht de engine het opgegeven aantal seconden voordat de volgende nieuwe poging wordt uitgevoerd. De minimaal ondersteunde wachttijd is 0,5 seconden en de maximumwaarde is 120 seconden.
Notitie
De Retry-after
waarde moet de delta-seconds
notatie hebben. De HTTP-date
indeling wordt momenteel niet ondersteund.
Verificatie-uitzonderingen
De volgende statuscodes resulteren in een uitzondering voor referenties, waardoor een verificatieprompt wordt gevraagd om referenties op te geven (of meld u opnieuw aan in het geval van een verlopen OAuth-token).
Code | Status |
---|---|
401 | Niet geautoriseerd |
403 | Verboden |
Notitie
Extensies kunnen de ManualStatusHandling
optie gebruiken met statuscodes 401 en 403, wat niet kan worden gedaan in Web.Contents
aanroepen buiten een aangepaste gegevensconnector (dat wil gezegd, rechtstreeks vanuit Power Query).
Omleiding
De volgende statuscodes resulteren in een automatische omleiding naar de URI die is opgegeven in de Location
header. Een ontbrekende Location
header resulteert in een fout.
Code | Status |
---|---|
300 | Meerdere opties |
301 | Permanent verplaatst |
302 | Gevonden |
303 | Zie overige |
307 | Tijdelijke omleiding |
Notitie
Alleen statuscode 307 houdt een POST
aanvraagmethode bij. Alle andere omleidingsstatuscodes resulteren in een switch naar GET
.