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 göra nya försök med begäranden som misslyckas med någon av följande statuskoder:

Kod Läge
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.

Anmärkning

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

Autentiseringsundantag

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 Läge
401 Unauthorized
403 Ej tillåtet

Anmärkning

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

Redirection

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 Läge
300 Flera alternativ
301 Flyttad permanent
302 Hittad
303 Se Övrigt
307 Tillfällig omdirigering

Anmärkning

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