Persistir uma sessão HTTP em todas as chamadas SOAP
Em circunstâncias em que um cliente SOAP faz muitas chamadas em um curto período de tempo, convém reutilizar uma única sessão HTTP para todas as chamadas SOAP.
Cada chamada SOAP cria uma nova sessão de usuário que persiste até expirar. Para criar uma única sessão de usuário e reutilizá-la para todas as chamadas SOAP de entrada, desenvolva seu cliente SOAP seguindo estas diretrizes:
- Use um módulo como HTTP::Cookies para criar um "cookie jar".
- Salve os cookies retornados pela ServiceNow após cada solicitação (manipulados automaticamente por HTTP::Cookies).
- Reenvie os cookies no frasco de cookies com cada solicitação subsequente.
Nota:
Se você habilitou a configuração de alta segurança de rotação de sessão, isso invalidará imediatamente o JSESSIONID retornado do servidor com o cabeçalho da primeira resposta. A segunda resposta inclui um novo JSESSIONID.
Em perl, você pode salvar e enviar cookies automaticamente com o seguinte código:
use HTTP::Cookies;
#we want to store and re-send cookies
my $cookies = HTTP::Cookies->new(ignore_discard => 1);
my $soap = SOAP::Lite
-> proxy('http://localhost:8080/glide/ecc_queue.do?SOAP');
#Set the cookie jar
$soap->transport->cookie_jar($cookies);