Afhandeling van statuscode met Web.Contents
De Web.Contents functie heeft een ingebouwde functionaliteit voor het omgaan met bepaalde HTTP-statuscodes. Het standaardgedrag kan worden overschrijven 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 van aanvraag |
| 429 | Te veel aanvragen |
| 503 | Service niet beschikbaar |
| 504 | Time-out van gateway |
| 509 | Bandbreedtelimiet overschreden |
Aanvragen worden maximaal drie keer opnieuw ingediend voordat het mislukt. De engine gebruikt een exponentieel 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 poging wordt gedaan. De minimaal ondersteunde wachttijd is 0,5 seconden en de maximumwaarde is 120 seconden.
Notitie
De Retry-after waarde moet de notatie delta-seconds hebben. De HTTP-date indeling wordt momenteel niet ondersteund.
Verificatie-uitzonderingen
De volgende statuscodes resulteren in een referentie-uitzondering, waardoor de gebruiker wordt gevraagd referenties op te geven (of zich opnieuw aan te melden in het geval van een verlopen OAuth-token).
| Code | Status |
|---|---|
| 401 | Niet geautoriseerd |
| 403 | Verboden |
Notitie
Extensies kunnen de optie gebruiken met ManualStatusHandling de statuscodes 401 en 403. Dit is niet iets dat kan worden gedaan in aanroepen die buiten een extensiecontext worden gedaan (dat wil zeggen, rechtstreeks vanuit Web.Contents Power Query).
Omleiding
De volgende statuscodes resulteren in een automatische omleiding naar de URI die is opgegeven in de Location header. Een Location ontbrekende 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 be bewaren een POST aanvraagmethode. Alle andere omleidingsstatuscodes resulteren in een overgang naar GET .