Saltar para o conteúdo principal
Versão: 20 R6 BETA

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
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 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
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

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] (#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):

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
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
timeoutRealindefinidoSe definido, o tempo limite após o qual um soquete não utilizado é fechado
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
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
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 é 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)

nota

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.