Udostępnij za pośrednictwem


Obsługa kodu stanu za pomocą polecenia Web.Contents

Funkcja Web.Contents ma pewne wbudowane funkcje do obsługi niektórych kodów stanu HTTP. Domyślne zachowanie można zastąpić w rozszerzeniu przy użyciu ManualStatusHandling pola w rekordzie opcji.

Automatyczne ponawianie próby

Web.Contents automatycznie ponawia próby żądań, które kończą się niepowodzeniem, przy użyciu jednego z następujących kodów stanu:

Kod Stan
408 Limit czasu żądania
429 Zbyt wiele żądań
503 Usługa niedostępna
504 Limit czasu bramy
509 Przekroczono limit przepustowości

Żądania będą ponawiane do trzech razy przed niepowodzeniem. Aparat używa algorytmu wycofywania wykładniczego, aby określić, jak długo czekać do następnego ponawiania próby, chyba że odpowiedź zawiera Retry-after nagłówek. Po znalezieniu nagłówka aparat będzie czekać określoną liczbę sekund przed następnym ponowieniu próby. Minimalny obsługiwany czas oczekiwania wynosi 0,5 sekundy, a maksymalna wartość to 120 sekund.

Uwaga

Wartość Retry-after musi być w delta-seconds formacie . Format HTTP-date nie jest obecnie obsługiwany.

Wyjątki uwierzytelniania

Następujące kody stanu spowodują wyjątek poświadczeń, powodując monit o uwierzytelnienie z prośbą użytkownika o podanie poświadczeń (lub ponowne zalogowanie się w przypadku wygasłego tokenu OAuth).

Kod Stan
401 Brak autoryzacji
403 Dostęp zabroniony

Uwaga

Rozszerzenia mogą używać ManualStatusHandling opcji z kodami stanu 401 i 403, co nie jest czymś, co można wykonać w Web.Contents wywołaniach wykonanych poza niestandardowym łącznikiem danych (czyli bezpośrednio z dodatku Power Query).

Przekierowania

Następujące kody stanu spowodują automatyczne przekierowanie do identyfikatora URI określonego w nagłówku Location . Brak Location nagłówka spowoduje błąd.

Kod Stan
300 Wiele wyborów
301 Przeniesione trwale
302 Znalezione
303 Zobacz inne
307 Przekierowanie tymczasowe

Uwaga

Tylko kod stanu 307 będzie przechowywać metodę POST żądania. Wszystkie inne kody stanu przekierowania spowodują przełączenie na GET.