Obsługuj kody stanu za pomocą Web.Contents

Funkcja Web.Contents ma wbudowaną funkcję do obsługi niektórych kodów stanu HTTP. Możesz nadpisać domyślne zachowanie w swoim rozszerzeniu za pomocą pola ManualStatusHandling w rekordzie options.

Automatyczne ponawianie próby

Usługa Web.Contents automatycznie ponawia próby żądań, które kończą się niepowodzeniem z jednym z następujących kodów stanu:

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

Funkcja ponawia żądanie maksymalnie trzy razy, zanim zgłosi błąd. Silnik używa algorytmu wycofywania wykładniczego do określania, jak długo czekać na następną ponowną próbę, chyba że odpowiedź zawiera nagłówek Retry-after. Po znalezieniu nagłówka mechanizm czeka określoną liczbę sekund przed następną ponowną próbą. Minimalny obsługiwany czas oczekiwania wynosi 0,5 sekundy, a maksymalna wartość to 120 sekund.

Uwaga / Notatka

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 powodują wyjątek związany z poświadczeniami. Wyjątek monituje użytkownika o podanie poświadczeń lub ponowne zalogowanie się, jeśli token OAuth wygasł.

Code Status
401 Brak autoryzacji
403 Zakazany

Uwaga / Notatka

Rozszerzenia mogą korzystać z opcji ManualStatusHandling z kodami stanu 401 i 403. Nie można używać tej opcji w wywołaniach Web.Contents realizowanych poza niestandardowym łącznikiem danych (czyli bezpośrednio z Power Query).

Redirection

Następujące kody stanu powodują automatyczne przekierowanie do adresu URI podanego w nagłówku Location. Brak Location nagłówka powoduje błąd.

Code Status
300 Wiele wyborów
301 Przeniesione trwale
302 Znaleziono
303 Zobacz inny adres
307 Przekierowanie tymczasowe

Uwaga / Notatka

Tylko kod stanu 307 przechowuje metodę POST żądania. Wszystkie pozostałe kody stanu przekierowania zostaną zmienione na GET.