HTTPAgent
A classe HTTPAgent
permite que você manipule [objetos HTTPAgent
] (#httpagent-object) que podem ser usados para gerenciar a persistência e a reutilização de conexões com servidores usando a classe [HTTPRequest] (HTTPRequestClass.md).
A classe HTTPAgent
está disponível no repositório de classes 4D
. Você pode criar um novo objeto [HTTPAgent
] (#httpagent-object) usando a função [4D.HTTPAgent.new()] (#4dhttpagentnew).
Quando nenhum agente está associado a uma solicitação HTTP, é usado um agente global com valores padrão. O agente padrão é a forma mais simples de agente HTTP, adequado para casos de uso básicos. Recomenda-se o uso de agentes personalizados para obter mais controle, no nível do agente e não para cada solicitação HTTP, sobre aspectos específicos da conexão, como configurações de keep-alive, tempos limite ou configurações de TLS/SSL.
História
Release | Mudanças |
---|---|
20 R6 | Classe adicionada |
Objeto HTTPAgent
Um objeto HTTPAgent é um objeto compartilhável.
Os objetos HTTPAgent fornecem as seguintes propriedades e funções:
options : Object as opções usadas atualmente do HTTPAgent |
requestsCount : Integer o número de solicitações atualmente tratadas pelo HTTPAgent |
freeSocketsCount : Integer o número de sockets livres de maxSockets associados ao HTTPAgent |
Como o HTTPAgent é um objeto compartilhável, você pode adicioná-lo a uma classe singleton para poder usar o mesmo agente em todas as solicitações ao mesmo servidor.
4D.HTTPAgent.new()
4D.HTTPAgent.new( { options : Object } ) : 4D.HTTPAgent
Parâmetro | Tipo | Descrição | |
---|---|---|---|
options | Object | -> | opções padrão para o HTTPAgent |
Resultados | 4D.HTTPAgent | <- | Novo objeto HTTPAgent |
Descrição
A função 4D.HTTPAgent.new()
cria um objeto HTTPAgent compartilhável com as opções definidas e retorna um objeto 4D.HTTPAgent
.
O [objeto HTTPAgent
] (#httpagent-object) retornado é usado para personalizar as conexões com os servidores HTTP.
options
parameter
No parâmetro options, passe um objeto que possa conter as seguintes propriedades (todas as propriedades são opcionais):
As opções do HTTPAgent serão mescladas com as opções HTTPRequest (as opções HTTPRequest têm prioridade); se nenhum agente específico for definido, será utilizado um agente global.
Propriedade | Tipo | Por padrão | Descrição |
---|---|---|---|
keepAlive | Parâmetros | true | Ativa o keep alive para o agente |
maxSockets | Integer | 65535 | Número máximo de sockets por servidor |
maxTotalSockets | Integer | 65535 | Número máximo de sockets para o agente |
timeout | Real | indefinido | Se definido, o tempo limite após o qual um soquete não utilizado é fechado |
certificatesFolder | Folder | singleton (consulte o valor padrão em HTTPRequest.new()) | Define a pasta de certificados do cliente ativo para as solicitações que usam o agente |
minTLSVersion | Text | singleton (consulte o valor padrão em HTTPRequest.new()) | Define a versão mínima de TLS para as solicitações que usam esse agente |
protocol | Text | singleton (consulte o valor padrão em HTTPRequest.new()) | Protocolo usado para as solicitações que usam o agente |
validateTLSCertificate | Parâmetros | singleton (consulte o valor padrão em HTTPRequest.new()) | validateTLSCertificate para as solicitações que usam o agente |
Você pode solicitar vários servidores usando o mesmo agente. Nesse caso, cada servidor terá seu próprio pool de conexões usando as mesmas opções de agente.
Exemplo
Criando o HTTPAgent:
var $options:={}
$options.maxSockets:=5 //5 é o número máximo de sockets por servidor
$options.maxTotalSockets:=10 //10 é o número máximo de sockets para o agente
$options.validateTLSCertificate:=True //Para validar o certificado do servidor
var $myAgent:=4D.HTTPAgent.new($options)
Envio de uma solicitação para verificar a hora local de qualquer cidade:
var $options:={}
$options.method:="GET"
$options.agent:=$myAgent
var $myRequest:=4D.HTTPRequest.new("http://worldtimeapi.org/api/timezone/Europe/Paris"; $options)
Quando nenhum agente está associado a um HTTPRequest, é usado um agente global com valores padrão.
.options
options : Object
Descrição
O objeto de propriedade .options
contém as opções usadas atualmente do HTTPAgent.
.requestsCount
requestsCount : Integer
Descrição
A propriedade .requestsCount
contém o número de solicitações atualmente tratadas pelo HTTPAgent.
.freeSocketsCount
freeSocketsCount : Integer
Descrição
A propriedade .freeSocketsCount
contém o número de sockets livres de maxSockets
associados ao HTTPAgent.