Saltar al contenido principal
Versión: 20 R6

HTTPAgent

La clase HTTPAgent permite manejar HTTPAgent objects que pueden ser utilizados para gestionar la persistencia y reutilización de conexiones a servidores utilizando la clase HTTPRequest.

La clase HTTPAgent está disponible en el class store 4D. Puede crear un nuevo objeto HTTPAgent utilizando la función 4D.HTTPAgent.new().

Cuando no hay ningún agente asociado a una petición HTTP, se utiliza un agente global con valores por defecto. El agente por defecto es la forma más simple de agente HTTP, adecuado para casos de uso básicos. Los agentes personalizados se recomiendan para tener un mayor control, a nivel de agente en lugar de para cada petición HTTP, sobre aspectos específicos de la conexión como la configuración de keep-alive, los tiempos de espera o las configuraciones TLS/SSL.

Historia
LanzamientoModificaciones
20 R6Clase añadida

Objeto HTTPAgent

Un objeto HTTPAgent es un objeto compartible.

Los objetos HTTPAgent ofrecen las siguientes propiedades y funciones:

options : Object
las opciones utilizadas actualmente del HTTPAgent
requestsCount : Integer
el número de peticiones gestionadas actualmente por el HTTPAgent
freeSocketsCount : Integer
el número de sockets libres de maxSockets asociados al HTTPAgent
tip

Dado que HTTPAgent es un objeto compartible, puede añadir uno a una clase singleton para poder utilizar el mismo agente para todas sus peticiones al mismo servidor.

4D.HTTPAgent.new()

4D.HTTPAgent.new( { options : Object } ) : 4D.HTTPAgent

ParámetrosTipoDescripción
optionsObject->opciones por defecto para el HTTPAgent
Result4D.HTTPAgent<-Nuevo objeto HTTPAgent

Descripción

La función 4D.HTTPAgent.new() crea un objeto HTTPAgent compartible con las opciones definidas, y devuelve un objeto 4D.HTTPAgent.

El [objeto HTTPAgent] devuelto (#httpagent-object) se utiliza para personalizar las conexiones a servidores HTTP.

Parámetro options

En el parámetro options, pase un objeto que pueda contener las siguientes propiedades (todas las propiedades son opcionales):

nota

Las opciones de HTTPAgent se fusionarán con opciones HTTPRequest (las opciones de HTTPRequest tienen preferencia); si no se define un agente específico, se utilizará un agente global.

PropiedadTipoPor defectoDescripción
keepAliveBooleantrueActiva keep alive para el agente
maxSocketsInteger65535Número máximo de sockets por servidor
maxTotalSocketsInteger65535Número máximo de sockets para el agente
timeoutRealindefinidoSi se define, tiempo después del cual se cierra un socket no utilizado
certificatesFolderFolderundefined (ver valor por defecto en HTTPRequest.new())Define la carpeta activa de certificados de cliente para las solicitudes que utilizan el agente
minTLSVersionTextundefined (ver valor por defecto en HTTPRequest.new())Define la versión mínima de TLS para las solicitudes que utilizan este agente
protocolTextundefined (ver valor por defecto en HTTPRequest.new())Protocolo usado para las peticiones utilizando el agente
validateTLSCertificateBooleanundefined (ver valor por defecto en HTTPRequest.new())Validar el certificado Tls para las solicitudes que utilizan el agente
nota

Puede solicitar múltiples servidores utilizando el mismo agente. En ese caso, cada servidor tendrá su propio grupo de conexiones utilizando las mismas opciones de agente.

Ejemplo

Creación del HTTPAgent:

var $options:={}
$options.maxSockets:=5 //5 es el número máximo de sockets por servidor
$options.maxTotalSockets:=10 //10 es el número máximo de sockets para el agente
$options.validateTLSCertificate:=True //Validar el certificado del servidor

var $myAgent:=4D.HTTPAgent.new($options)

Enviando una solicitud para comprobar la hora local de cualquier ciudad:

var $options:={}
$options.method:="GET"
$options.agent:=$myAgent
var $myRequest:=4D.HTTPRequest.new("http://worldtimeapi.org/api/timezone/Europe/Paris"; $options)

nota

Cuando no hay ningún agente asociado a una HTTPRequest, se utiliza un agente global con valores por defecto.

.options

options : Object

Descripción

El objeto de propiedad .options contiene las opciones utilizadas actualmente del HTTPAgent.

.requestsCount

requestsCount : Integer

Descripción

La propiedad .requestsCount contiene el número de peticiones gestionadas actualmente por el HTTPAgent.

.freeSocketsCount

freeSocketsCount : Integer

Descripción

La propiedad .freeSocketsCount contiene el número de sockets libres de maxSockets asociados al HTTPAgent.