Обработка кода состояния с помощью 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
переключении на .