Statuskodhantering med Web.Contents

Funktionen Web.Contents har vissa inbyggda funktioner för att hantera vissa HTTP-statuskoder. Standardbeteendet kan åsidosättas i tillägget med hjälp av ManualStatusHandling fältet i alternativposten.

Automatiskt återförsök

Web.Contents kommer automatiskt att försöka begäranden som misslyckas med någon av följande statuskoder:

Kod Status
408 Tidsgräns för förfrågan
429 För många begäranden
503 Tjänsten är inte tillgänglig
504 Tidsgräns för gateway
509 Bandbreddsgränsen har överskridits

Begäranden görs på nytt upp till tre gånger innan de misslyckas. Motorn använder en exponentiell back-off-algoritm för att avgöra hur lång tid det tar att vänta till nästa återförsök, såvida inte svaret innehåller ett Retry-after huvud. När rubriken hittas väntar motorn det angivna antalet sekunder innan nästa försök igen. Den minsta väntetid som stöds är 0,5 sekunder och det maximala värdet är 120 sekunder.

Kommentar

Värdet Retry-after måste vara i delta-seconds formatet . Formatet HTTP-date stöds för närvarande inte.

Autentiseringsfel

Följande statuskoder resulterar i ett undantag för autentiseringsuppgifter, vilket gör att en autentiseringsfråga uppmanar användaren att ange autentiseringsuppgifter (eller logga in igen om en OAuth-token har upphört att gälla).

Kod Status
401 Behörighet saknas
403 Ej tillåtet

Kommentar

Tillägg kan använda ManualStatusHandling alternativet med statuskoderna 401 och 403, vilket inte är något som kan göras i Web.Contents anrop som görs utanför en anpassad dataanslutning (det vill: direkt från Power Query).

Omdirigering

Följande statuskoder resulterar i en automatisk omdirigering till den URI som anges i Location rubriken. En rubrik som saknas Location resulterar i ett fel.

Kod Status
300 Flera alternativ
301 Flyttades permanent
302 Hittade
303 Se Övrigt
307 Tillfällig omdirigering

Kommentar

Endast statuskod 307 behåller en POST begärandemetod. Alla andra omdirigeringsstatuskoder resulterar i en växling till GET.