Ir al contenido

Capítulo 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.


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");

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).


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.


  • Usa PostAsync para enviar datos.
  • StringContent permite definir el tipo application/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.