Manipular códigos de status usando Web.Contents

A função Web.Contents tem alguma funcionalidade interna para lidar com determinados códigos de status HTTP. Você pode substituir o comportamento padrão em sua extensão usando o ManualStatusHandling campo no registro de opções.

Repetição automática

Web.Contents repetirá automaticamente as solicitações que falharem com um dos seguintes códigos de status:

Code Situação
408 Tempo limite de solicitação
429 Muitas solicitações
503 Serviço indisponível
504 Tempo limite do gateway
509 Limite de largura de banda excedido

A função tenta novamente solicitações até três vezes antes de falhar. O mecanismo usa um algoritmo de retirada exponencial para determinar quanto tempo aguardar até a próxima repetição, a menos que a resposta contenha um Retry-after cabeçalho. Quando o cabeçalho é encontrado, o mecanismo aguarda o número especificado de segundos antes da próxima repetição. O tempo mínimo de espera com suporte é de 0,5 segundos e o valor máximo é de 120 segundos.

Observação

O valor Retry-after deve estar no formato delta-seconds. No HTTP-date momento, não há suporte para o formato.

Exceções de autenticação

Os códigos de status a seguir causam uma exceção de credenciais. A exceção solicita que o usuário forneça credenciais ou entre novamente se um token OAuth expirou.

Code Situação
401 Desautorizado
403 Proibido

Observação

As extensões podem usar a opção ManualStatusHandling com os códigos de status 401 e 403. Você não pode usar esta opção em chamadas Web.Contents feitas fora de um conector de dados personalizado (ou seja, diretamente no Power Query).

Redirection

Os códigos de status a seguir causam um redirecionamento automático para o URI especificado no Location cabeçalho. Um cabeçalho ausente Location causa um erro.

Code Situação
300 Várias opções
301 Movido Permanentemente
302 Encontrado
303 Ver Outros
307 Redirecionamento temporário

Observação

Somente o código de status 307 mantém um método de solicitação POST . Todos os outros códigos de status de redirecionamento mudam para GET.