Aller au contenu principal
Version: 20 R6

HTTPAgent

La classe HTTPAgent vous permet de manipuler des objets HTTPAgent qui peuvent être utilisés pour gérer la persistance et la réutilisation des connexions aux serveurs en utilisant la classe HTTPRequest.

La classe HTTPAgent est disponible dans le class store 4D. Vous pouvez créer un nouvel objet HTTPAgent en utilisant la fonction 4D.HTTPAgent.new().

Si aucun agent n'est associé à une requête HTTP, un agent global avec des valeurs par défaut est utilisé. L'agent par défaut est la forme la plus simple d'agent HTTP, adaptée aux cas d'utilisation de base. Il est recommandé d'utiliser des agents personnalisés pour mieux contrôler, au niveau de l'agent plutôt que pour chaque requête HTTP, des aspects spécifiques de la connexion tels que les paramètres keep-alive, les délais d'attente ou les configurations TLS/SSL.

Historique
ReleaseModifications
20 R6Classe ajoutée

Objet HTTPAgent

Un objet HTTPAgent est un objet partageable.

Les objets HTTPAgent fournissent les propriétés et fonctions suivantes :

options : Object
les options actuellement utilisées par le HTTPAgent
requestsCount : Integer
le nombre de requêtes actuellement traitées par le HTTPAgent
freeSocketsCount : Integer
le nombre de sockets libres du maxSockets associé au HTTPAgent
tip

Comme HTTPAgent est un objet partageable, vous pouvez en ajouter un à une classe singleton afin d'utiliser le même agent pour toutes les requêtes adressées au même serveur.

4D.HTTPAgent.new()

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

ParamètresTypeDescription
optionsObject->options par défaut pour le HTTPAgent
Résultat4D.HTTPAgent<-Nouvel objet HTTPAgent

Description

La fonction 4D.HTTPAgent.new() crée un objet HTTPAgent partageable avec les options définies, et renvoie un objet 4D.HTTPAgent.

L'objet HTTPAgent renvoyé est utilisé pour personnaliser les connexions aux serveurs HTTP.

Paramètre options

Dans le paramètre options, passez un objet qui peut contenir les propriétés suivantes (toutes les propriétés sont facultatives) :

note

Les options HTTPAgent seront fusionnées avec les options HTTPRequest (les options HTTPRequest sont prioritaires) ; si aucun agent spécifique n'est défini, un agent global est utilisé.

PropriétéTypePar défautDescription
keepAliveBooleantrueActive le keep-alive de l'agent
maxSocketsInteger65535Nombre maximum de sockets par serveur
maxTotalSocketsInteger65535Nombre maximum de sockets pour l'agent
timeoutRealundefinedSi défini, délai après lequel une socket inutilisée est fermée
certificatesFolderFolderundefined (voir valeur par défaut dans HTTPRequest.new())Définit le dossier actif des certificats du client pour les requêtes utilisant l'agent
minTLSVersionTextundefined (voir valeur par défaut dans HTTPRequest.new())Définit la version minimale de TLS pour les requêtes utilisant cet agent
protocolTextundefined (voir valeur par défaut dans HTTPRequest.new())Protocole mis en oeuvre pour les requêtes utilisant l'agent
validateTLSCertificateBooleanundefined (voir valeur par défaut dans HTTPRequest.new())validateTLSCertificate pour les requêtes utilisant l'agent
note

Vous pouvez effectuer des requêtes vers plusieurs serveurs en utilisant le même agent. Dans ce cas, chaque serveur aura son propre pool de connexions utilisant les mêmes options d'agent.

Exemple

Création du HTTPAgent :

var $options:={}
$options.maxSockets:=5 //5 est le nombre maximum de sockets par serveur
$options.maxTotalSockets:=10 //10 est le nombre maximum de sockets pour l'agent
$options.validateTLSCertificate:=True //Valider le certificat du serveur

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

Envoi d'une requête de vérification de l'heure locale de n'importe quelle ville :

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

note

Si aucun agent n'est associé à une requête HTTP, un agent global avec des valeurs par défaut est utilisé.

.options

options : Object

Description

L'objet propriété .options contient les options actuellement utilisées par le HTTPAgent.

.requestsCount

requestsCount : Integer

Description

La propriété .requestsCount contient le nombre de requêtes actuellement traitées par le HTTPAgent.

.freeSocketsCount

freeSocketsCount : Integer

Description

La propriété .freeSocketsCount contient le nombre de sockets libres du maxSockets associé au HTTPAgent.