Conserver une session HTTP sur tous les appels SOAP

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 1 minute de lecture
  • Lorsqu’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 directives 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 (géré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.
    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);