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 instructions :
- Utilisez un module comme HTTP ::Cookies pour créer un « cookie jar ».
- Enregistrer les cookies renvoyés par ServiceNow après chaque requête (traités automatiquement par HTTP ::Cookies).
- Renvoyez les cookies dans le pot à biscuits à chaque demande ultérieure.
Remarque :
Si vous avez activé le paramètre de haute sécurité 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 nouveau JSESSIONID.
En 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);