Con 4D v19R6, le trajimos una nueva forma de realizar peticiones HTTP: Las clases HTTP. En ese momento, algunas de las funcionalidades de las clases HTTP no eran definitivas, ya que queríamos adaptarlas a la nueva sintaxis. ¡Ahora ya está hecho! En la v19R7, las funcionalidades de las respuestas comprimidas, las respuestas fragmentadas y las redirecciones ya están completas.
Como extra, también hemos añadido una nueva forma de registrar las peticiones HTTP. Y como es útil para todos, este nuevo registro está disponible para las nuevas clases HTTP así como para la sintaxis heredada.
En primer lugar, permítanme hablar de las funcionalidades de las clases HTTP. Hemos informado y adaptado el funcionamiento de la sintaxis heredada para que se ajuste a la nueva sintaxis. Incluimos la mayoría de sus funcionalidades, a saber, HTTPs, autenticación de proxy y servidor, redirecciones, respuestas fragmentadas y respuestas comprimidas. También añadimos algunas funcionalidades, como la posibilidad de cancelar una petición o el nuevo registro de peticiones de clientes HTTP (llegaré a esto en el siguiente párrafo). La última funcionalidad de la que tenemos que informar en la nueva sintaxis es la persistencia de la conexión a través de un keep-alive: llegará pronto dentro de una característica mucho más destacada… que os explicaré en otra entrada del blog. ¡Estad atentos!
Ahora, hablemos del nuevo registro de clientes HTTP disponible en la v19R7.
Activar el registro del cliente HTTP es extremadamente sencillo; sólo tiene que añadir esta línea a su código:
HTTP SET OPTION(HTTP client log; HTTP enable log with all body parts)
¡Y eso es todo! Todas tus peticiones y respuestas serán registradas en el archivo 4DHTTPClientLog_x.txt en el directorio Logs con el mismo formato que los registros del servidor.
Por supuesto, puede registrar las peticiones y las respuestas por completo, pero si no quiere que sus archivos de registro se llenen de respuestas largas, puede eliminar los cuerpos de las respuestas e incluso los cuerpos de las peticiones. La sintaxis es muy parecida a la de la activación del registro del servidor, así que no te sorprenderá.
Por último, he aquí un ejemplo de una solicitud y su respuesta (sin sus cuerpos) registrados en el archivo de registro del cliente HTTP:
# REQUEST # SequenceID: 7 # ConnectionID: DDF30D20070B0848B455971A0D627ED6 # LocalIP: 192.168.18.11:52097 # PeerIP: 192.168.4.7:3128 # TimeStamp: -1607148967 GET http://www.4d.com:80/ HTTP/1.1 Accept-Encoding: gzip, deflate Connection: Close Content-Length: 4 Content-Type: text/plain; charset=UTF-8 Date: Fri, 23 Sep 2022 09:30:58 GMT Host: www.google.com User-Agent: 4D_HTTP_Client/0. [Body Size: 4] # RESPONSE # SequenceID: 6 # ConnectionID: 8EA22B111F16B04B92966DEFAA22704F # LocalIP: 192.168.18.11:52090 # PeerIP: 192.168.4.7:3128 # TimeStamp: -1607191491 # ElapsedTimeInMs: 154 HTTP/1.1 200 OK Cache-Control: private, max-age=0 Connection: close Content-Encoding: gzip Content-Length: 6185 Content-Type: text/html; charset=ISO-8859-1 Date: Fri, 23 Sep 2022 09:30:16 GMT Expires: -1 Via: 1.1 proxy-squid (squid/3.5.27) [Body Size: 6185]
Si tiene algún comentario sobre esta nueva función, no dude en compartirlo con nosotros en el foro oficial de 4D.