Saltar para o conteúdo principal
Versão: Próximo

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
ReleaseMudanças
20 R6Classe 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
tip

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
ReleaseMudanças
21Support of storeCertificateName property
ParâmetroTipoDescrição
optionsObject->opções padrão para o HTTPAgent
Resultados4D.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):

nota

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.

PropriedadeTipoPor padrãoDescrição
certificatesFolderFoldersingleton (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)
keepAliveParâmetrostrueAtiva o keep alive para o agente
maxSocketsInteger65535Número máximo de sockets por servidor
maxTotalSocketsInteger65535Número máximo de sockets para o agente
minTLSVersionTextsingleton (consulte o valor padrão em HTTPRequest.new())Define a versão mínima de TLS para as solicitações que usam esse agente
protocolTextsingleton (consulte o valor padrão em HTTPRequest.new())Protocolo usado para as solicitações que usam o agente
storeCertificateNameTextindefinido(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.
timeoutRealindefinidoSe definido, o tempo limite após o qual um soquete não utilizado é fechado
validateTLSCertificateParâmetrossingleton (consulte o valor padrão em HTTPRequest.new())validateTLSCertificate para as solicitações que usam o agente
nota

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)

nota

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.