HTTP GET
HTTP GET
Sección titulada «HTTP GET»Tipo: http-get · Paquete: HTTP Activities v1.0.5 · Salida: ZoanHttpResponse
Envía una petición GET para leer/consultar datos de una API o servicio web. Es la petición más común: obtener un registro, listar elementos, consultar un dato. No envía cuerpo; toda la información va en la URL (incluyendo parámetros de consulta como ?estado=activo).
Cómo funciona
Sección titulada «Cómo funciona»Hace la petición a la url (con cabeceras y autenticación opcionales) y devuelve un ZoanHttpResponse. Si el cuerpo de la respuesta es JSON, se convierte automáticamente en diccionario/lista.
- Códigos de respuesta: con 2xx la actividad termina bien; las redirecciones se siguen solas; cualquier otro código (4xx, 5xx, 304) hace fallar la actividad — ver qué códigos hacen fallar la actividad.
- Tiempos: 30 s para conectar y, por defecto, 5 min para la petición completa (parámetro
timeout). Si se agotan, la actividad falla con un error normal que Try / Catch y Retry capturan — ver tiempos de espera. - Sin efectos locales: no escribe archivos ni cambia variables aparte de la salida. Un GET no debería modificar datos en el servidor, así que es seguro de reintentar con Retry.
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
url | string | — | URL absoluta de la petición (https://…), con su query string si hace falta. Admite expresiones (ej. "https://api.ejemplo.com/clientes/" + id). |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
headers | Dictionary | — | Cabeceras extra (nombre → valor), en el editor JSON. Las cabeceras de contenido (Content-Type…) se ignoran. Ver cabeceras. |
authorization | Dictionary | — | Autenticación en el editor JSON: {"type": "bearer", "token": …}, {"type": "basic", "username": …, "password": …} o {"type": "apikey", "header": …, "value": …}. Ver autenticación. |
timeout | int | 300 | Segundos que se espera la petición completa (conexión, envío y respuesta); máximo 3600, admite decimales (0.5). Desde la versión 1.0.5. Ver tiempos de espera. |
Devuelve un ZoanHttpResponse:
| Propiedad | Tipo | Contenido |
|---|---|---|
.StatusCode | int | Código 2xx de la respuesta final (normalmente 200). |
.Ok | bool | Siempre true en una salida recibida (los demás códigos hacen fallar la actividad). |
.Body | object | Respuesta JSON → diccionario/lista navegable (resp.Body["items"][0]["id"]); otra respuesta → texto; cuerpo vacío → "". Una clave inexistente devuelve un valor vacío, no un error. |
.Headers | Dictionary | Cabeceras de la respuesta; varios valores unidos por ", ". |
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
El servidor respondió HTTP 404 (Not Found) a la solicitud GET. | El servidor respondió con un código fuera de 2xx (404, 401, 500…). Revisa la URL y la autenticación. Si el código es esperable, envuelve la petición en Try / Catch y decide según error.Message.Contains("HTTP 404"). |
No such host is known. (u otro error de red del sistema) | No hubo respuesta: nombre de servidor mal escrito, sin red, conexión rechazada o certificado inválido. error.Type es "HttpRequestException". Para cortes intermitentes, usa Retry. |
La solicitud GET a api.ejemplo.com no terminó en 300 s (tiempo de espera agotado). Sube «Tiempo de espera» si el servicio tarda más. | El servidor no respondió dentro de timeout. error.Type es \"TimeoutException\": captúralo con Try / Catch o reintenta con Retry; si la API tarda por naturaleza, sube timeout. Si el fallo es al conectar, el mensaje dice No se pudo conectar con … en 30 s. |
An invalid request URI was provided. Either the request URI must be an absolute URI or BaseAddress must be set. | La url no es absoluta (por ejemplo api.ejemplo.com/x). Incluye el esquema: https://api.ejemplo.com/x. |
'url' es obligatorio. | La expresión de url dio nulo. Verifica la variable que la arma. |
Desde la versión 1.0.5, si el servidor no responde a tiempo la actividad falla con un error capturable (TimeoutException); antes la ejecución terminaba como cancelada — ver tiempos de espera.
Ejemplo
Sección titulada «Ejemplo»Consultar un cliente por su id, autenticando con un token seguro:
HTTP GET url = "https://api.erp.com/clientes/" + clienteId authorization = { "type": "bearer", "token": credential("api-erp")["value"] } → output: resp
Set Variable name = nombreCliente value = resp.Body["nombre"]Log message = "Cliente: " + nombreClienteRecorrer una lista que viene dentro de la respuesta:
HTTP GET url = "https://api.erp.com/facturas?estado=pendiente" → output: respFor Each items = resp.Body["items"] itemVariable = factura └─ activities: Log message = "Factura " + factura["numero"] + " por " + factura["total"]Actividades relacionadas
Sección titulada «Actividades relacionadas»- HTTP POST — crear o enviar datos.
- Try / Catch — manejar respuestas de error.
- Tipos de datos › ZoanHttpResponse — leer la respuesta.