Delen via


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 Toestand
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.

Opmerking

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 referentie-uitzondering, wat een verificatieprompt veroorzaakt die aan de gebruiker vraagt om referenties op te geven (of opnieuw in te loggen in het geval van een verlopen OAuth-token).

Code Toestand
401 Niet geautoriseerd
403 Verboden

Opmerking

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).

Redirection

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 Toestand
300 Meerdere opties
301 Permanent verplaatst
302 Gevonden
303 Zie overige
307 Tijdelijke omleiding

Opmerking

Alleen statuscode 307 houdt een POST aanvraagmethode bij. Alle andere omleidingsstatuscodes resulteren in een switch naar GET.