Conserver une session HTTP dans tous les appels SOAP
Dans les cas où un client SOAP effectue de nombreux appels dans un court laps de temps, vous pouvez réutiliser une seule session HTTP pour tous les appels SOAP.
Chaque appel SOAP crée une nouvelle session utilisateur qui persiste jusqu’à son expiration. Pour créer une session utilisateur unique et la réutiliser pour tous les appels SOAP entrants, développez votre client SOAP en suivant ces directives :
- Utilisez un module comme HTTP ::Cookies pour créer un « cookie jar ».
- Enregistrez les cookies renvoyés par ServiceNow après chaque demande (gérés automatiquement par HTTP ::Cookies).
- Renvoyez les cookies dans le bocal à biscuits à chaque demande ultérieure.
Remarque :
Si vous avez activé le paramètre de sécurité élevée de rotation de session, il invalidera immédiatement le JSESSIONID renvoyé par le serveur avec le premier en-tête de réponse. La deuxième réponse inclut un nouvel ID JSESSION.
Dans perl, vous pouvez enregistrer et envoyer automatiquement des cookies avec le code suivant :
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);