HTTPAgent
A classe HTTPAgent
permite que você manipule objetos HTTPAgent
que podem ser usados para gerenciar a persistência e a reutilização de conexões com servidores usando a classe HTTPRequest.
A classe HTTPAgent
está disponível no repositório de classes 4D
. Você pode criar um novo objeto HTTPAgent
usando a função 4D.HTTPAgent.new().
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 atuais do agente HTTPent |
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
História
Release | Mudanças |
---|---|
21 | Support of storeCertificateName property |
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
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 |
---|---|---|---|
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. Can be overriden by "storeCertificateName" (see below) |
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 |
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 |
storeCertificateName | Text | indefinido | (Windows only) Name of the OS certificate store (e.g. "LocalMachine") from where to use certificates instead of those in the certificates folder for the requests using the agent. If the certificate store is not found, an error is returned. For more information, see this blog post. |
timeout | Real | indefinido | Se definido, o tempo limite após o qual um soquete não utilizado é fechado |
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 is the maximum number of sockets per server
$options.maxTotalSockets:=10 //10 is the maximum number of sockets for the agent
$options.validateTLSCertificate:=True //To validate the server's certificate
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.
.params
options : Object
Descrição
A propriedade .params
contém as opções usadas atuais do agente HTTPent.
.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.