Control de los códigos de estado con Web.Contents
La función Web.Contents
tiene funcionalidad integrada para tratar determinados códigos de estado HTTP. El comportamiento predeterminado se puede invalidar en la extensión usando el campo ManualStatusHandling
del registro options.
Reintento automático
Web.Contents
reintenta automáticamente las solicitudes que dan error con uno de los siguientes códigos de estado:
Código | Estado |
---|---|
408 | Tiempo de espera de solicitud |
429 | Demasiadas solicitudes |
503 | Servicio no disponible |
504 | Tiempo de espera de puerta de enlace |
509 | Límite de ancho de banda excedido |
Las solicitudes se reintentan hasta tres veces antes de mostrar un error. El motor usa un algoritmo de retroceso exponencial para determinar cuánto tiempo debe esperar hasta el siguiente reintento, a menos que la respuesta contenga un encabezado Retry-after
. Cuando encuentra el encabezado, el motor espera el número de segundos especificado antes del siguiente reintento. El tiempo de espera mínimo admitido es de 0,5 segundos y el valor máximo es de 120 segundos.
Nota:
El valor Retry-after
debe tener el formato delta-seconds
. Actualmente no se admite el formato HTTP-date
.
Excepciones de autenticación
Los siguientes códigos de estado dan lugar a una excepción de credenciales, que provoca una solicitud de autenticación en la que se pide al usuario que proporcione credenciales (o que vuelva a iniciar sesión en el caso de un token de OAuth expirado).
Código | Estado |
---|---|
401 | No autorizado |
403 | Prohibida |
Nota:
Las extensiones pueden usar la opción ManualStatusHandling
con los códigos de estado 401 y 403, que no es algo que se pueda hacer en las llamadas de Web.Contents
realizadas fuera de un conector de datos personalizado (es decir, directamente desde Power Query).
Redireccionamiento
Los siguientes códigos de estado dan lugar al redireccionamiento automático al URI especificado en el encabezado Location
. Si falta el encabezado Location
, se produce un error.
Código | Estado |
---|---|
300 | Varias opciones |
301 | Movido permanentemente |
302 | Encontrado |
303 | Ver otro |
307 | Redirección temporal |
Nota:
Solo el código de estado 307 mantiene un método de solicitud POST
. Todos los demás códigos de estado de redireccionamiento producen un cambio a GET
.