Compartilhar via


Tratamento de código de status com Web.Contents

A Web.Contents função tem alguma funcionalidade interna para lidar com determinados códigos de status HTTP. O comportamento padrão pode ser substituído 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 falham com um dos seguintes códigos de status:

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

As solicitações serão repetidas até três vezes antes de falharem. 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 for encontrado, o mecanismo aguardará 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 resultarão em uma exceção de credenciais, causando um prompt de autenticação solicitando que o usuário forneça credenciais (ou entre novamente no caso de um token OAuth expirado).

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, o que não pode ser feito em chamadas Web.Contents realizadas fora de um conector de dados personalizado (ou seja, diretamente do Power Query).

Redirection

Os códigos de status a seguir resultarão em um redirecionamento automático para o URI especificado no Location cabeçalho. Um cabeçalho ausente Location resultará em 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 manterá um método de solicitação POST . Todos os outros códigos de status de redirecionamento resultarão em uma mudança para GET.