Capítulo 33: Integración HTTP Básica (Cliente REST)
Cap 33: Integración HTTP Básica (Cliente REST)
Sección titulada «Cap 33: Integración HTTP Básica (Cliente REST)»Parte XIII - Sección 27 - Nivel: Avanzado
Entramos en la era de la Industria 4.0. Nuestros esquema eléctricos ya no son islas; necesitan conectar con ERPs, sistemas MES, o bases de datos en la nube. El protocolo estándar para esto es HTTP.
En este capítulo, aprenderemos a convertir a EPLAN en un Cliente HTTP capaz de consumir APIs REST.
1. HttpClient en C#
Sección titulada «1. HttpClient en C#»La clase moderna para esto en .NET es System.Net.Http.HttpClient.
Para usarla en scripts de EPLAN, a veces es necesario asegurar que el ensamblado System.Net.Http.dll está accesible, aunque en versiones modernas de EPLAN (basadas en .NET 4.7.2+) suele estarlo por defecto.
Nota: Si tu script falla al compilar, asegúrate de que tienes
using System.Net.Http;y añade la referencia al assembly con// #r "System.Net.Http.dll"al inicio del script.
2. Peticiones Síncronas vs Asíncronas
Sección titulada «2. Peticiones Síncronas vs Asíncronas»Los scripts de EPLAN son inherentemente síncronos. Si lanzamos una petición HTTP que tarda 10 segundos, EPLAN se congelará 10 segundos.
Para evitar complicaciones de hilos (async/await no siempre funciona directo en scripts antiguos), usamos .Result para forzar la espera:
// Bloqueantevar respuesta = client.GetAsync(url).Result;Para scripts de producción, considera poner un Timeout breve al cliente:
client.Timeout = TimeSpan.FromSeconds(3);3. Ejemplo: “Zen of Github”
Sección titulada «3. Ejemplo: “Zen of Github”»El script 01_ClienteHTTP.cs conecta a una API pública simple que devuelve una frase aleatoria.
Esto demuestra el ciclo completo:
- Crear cliente.
- Configurar cabeceras (User-Agent).
- Lanzar GET.
- Leer cuerpo de respuesta.
Resumen
Sección titulada «Resumen»- EPLAN puede consumir datos de Internet/Intranet.
- Usa
HttpClientcon bloqueos síncronos.Resultcontrolados. - Maneja siempre
try/catchpara errores de red.
En el próximo capítulo, haremos lo contrario: Enviar datos (POST) a un servidor para registrar eventos o errores.