Capítulo 34: Logging Remoto (HTTP POST)
Cap 34: Logging Remoto (HTTP POST)
Sección titulada «Cap 34: Logging Remoto (HTTP POST)»Parte XIII - Sección 27 - Nivel: Avanzado
Leer datos es útil, pero enviar datos abre la puerta a la telemetría y monitoreo centralizado. Imagina un Dashboard web donde el Jefe de Ingeniería puede ver:
- Cuántos planos se han exportado hoy.
- Qué errores de sistema están ocurriendo en las 20 estaciones de trabajo.
- Tiempos de ejecución de scripts.
Esto se logra con peticiones HTTP POST.
1. Estructura de un POST JSON
Sección titulada «1. Estructura de un POST JSON»Para enviar datos estructurados, el estándar es JSON (application/json).
En C# nativo (sin usar Newtonsoft.Json para no depender de DLLs externas en el script), podemos crear el JSON manualmente con String.Format:
string json = "{ \"usuario\": \"Juan\", \"accion\": \"Login\" }";var content = new StringContent(json, Encoding.UTF8, "application/json");2. Eventos + HTTP = Telemetría
Sección titulada «2. Eventos + HTTP = Telemetría»La verdadera potencia surge al combinar los EventHandlers (que vimos en Cap 20) con HttpClient.
Podemos suscribirnos al evento onActionEnd.String.print y, cada vez que alguien imprima, enviar un POST silencioso al servidor.
El ejemplo 01_LoggerRemoto.cs muestra la mecánica básica de envío a un endpoint de prueba (httpbin.org).
3. Servidor de Recepción
Sección titulada «3. Servidor de Recepción»Del lado del servidor, necesitarías un pequeño script en Python (Flask), NodeJS (Express) o .NET Core para recibir estos mensajes.
En los ejemplos oficiales del libro (EPLAN-Scripting-4.0/99_AdditionalExamples/), encontrarás scripts de Python (_server.py) que demuestran cómo levantar un “listener” simple para tus pruebas locales.
Resumen
Sección titulada «Resumen»- Usa
PostAsyncpara enviar datos. StringContentpermite definir el tipoapplication/json.- Esta técnica permite auditoría y monitoreo remoto de licencias y flujos de trabajo de EPLAN.
En el próximo capítulo, veremos la evolución de esto: SignalR, para comunicación en tiempo real bidireccional.