Обработка кода состояния с помощью Web.Contents

Функция Web.Contents имеет некоторые встроенные функции для работы с определенными кодами состояния HTTP. Поведение по умолчанию можно переопределить в расширении с помощью ManualStatusHandling поля в записи параметров.

Автоматическая повторная попытка

Web.Contents будет автоматически повторять запросы, которые завершаются сбоем с одним из следующих кодов состояния:

Код Состояние
408 Истекло время ожидания запроса
429 Слишком много запросов
503 Служба недоступна
504 Истекло время ожидания шлюза
509 Превышен предел пропускной способности

Запросы будут выполняться до трех раз до сбоя. Подсистема использует экспоненциальный алгоритм обратного выключения, чтобы определить, сколько времени ждать до следующей повторных попыток, если ответ не содержит Retry-after заголовок. При обнаружении заголовка подсистема будет ожидать указанного количества секунд до следующего повтора. Минимальное поддерживаемое время ожидания — 0,5 секунды, а максимальное значение — 120 секунд.

Примечание.

Значение Retry-after должно быть в delta-seconds формате. Формат в HTTP-date настоящее время не поддерживается.

Исключения проверки подлинности

Следующие коды состояния приводят к исключению учетных данных, что приводит к запросу проверки подлинности, запрашивающего у пользователя предоставление учетных данных (или повторного входа в случае истекшего маркера OAuth).

Код Состояние
401 Не авторизовано
403 Запрещено

Примечание.

Расширения могут использовать ManualStatusHandling параметр с кодами состояния 401 и 403, что не может быть сделано в Web.Contents вызовах, выполненных за пределами пользовательского соединителя данных (то есть непосредственно из Power Query).

Перенаправление

Следующие коды состояния приводят к автоматическому перенаправлению в универсальный код ресурса (URI), указанный в заголовке Location . Отсутствующий Location заголовок приведет к ошибке.

Код Состояние
300 Несколько вариантов
301 Перемещено навсегда
302 найден
303 См. другие
307 Временное перенаправление

Примечание.

Только код состояния 307 будет хранить POST метод запроса. Все остальные коды состояния перенаправления приводят к GETпереключении на .