Conserver une session HTTP sur tous les appels SOAP

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 1 minute de lecture
  • 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 les instructions suivantes :
    • Utilisez un module comme HTTP ::Cookies pour créer une « boîte à cookies ».
    • Enregistrez les cookies renvoyés par ServiceNow après chaque requête (traités automatiquement par HTTP ::Cookies).
    • Renvoyez les cookies dans la boîte à 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 nouveau JSESSIONID.
    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);