Gestire i codici di stato usando Web.Contents

La funzione Web.Contents include alcune funzionalità predefinite per la gestione di determinati codici di stato HTTP. È possibile eseguire l'override del comportamento predefinito nell'estensione usando il ManualStatusHandling campo nel record delle opzioni.

Ripetizione automatica dei tentativi

Web.Contents ritenta automaticamente le richieste che hanno esito negativo con uno dei codici di stato seguenti:

Codice stato
408 Timeout richiesta
429 Troppe richieste
503 Servizio non disponibile
504 Timeout gateway
509 Limite di larghezza di banda superato

La funzione ritenta le richieste fino a tre volte prima di non riuscire. Il motore usa un algoritmo di back-off esponenziale per determinare quanto tempo attendere fino al successivo tentativo, a meno che la risposta non contenga un'intestazione Retry-after . Quando viene trovata l'intestazione, il motore attende il numero specificato di secondi prima del nuovo tentativo successivo. Il tempo di attesa minimo supportato è 0,5 secondi e il valore massimo è 120 secondi.

Annotazioni

Il Retry-after valore deve essere nel delta-seconds formato . Il HTTP-date formato non è attualmente supportato.

Eccezioni di autenticazione

I codici di stato seguenti causano un'eccezione di credenziali. L'eccezione richiede all'utente di fornire le credenziali o di accedere di nuovo se un token OAuth è scaduto.

Codice stato
401 Non autorizzata
403 Vietato

Annotazioni

Le estensioni possono usare l'opzione ManualStatusHandling con codici di stato 401 e 403. Non è possibile usare questa opzione nelle Web.Contents chiamate effettuate all'esterno di un connettore dati personalizzato, ovvero direttamente da Power Query.

Redirection

I codici di stato seguenti causano un reindirizzamento automatico all'URI specificato nell'intestazione Location . Un'intestazione mancante Location causa un errore.

Codice stato
300 Scelte multiple
301 Spostato in modo permanente
302 Trovato
303 Vedere Altro
307 Reindirizzamento temporaneo

Annotazioni

Solo il codice di stato 307 mantiene un POST metodo di richiesta. Tutti gli altri codici di stato di reindirizzamento passano a GET.