RESTResponseV2 : dans le champ d’application, global

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 5 minutes de lecture
  • L’API RESTResponseV2 fournit des méthodes qui vous permettent d’utiliser les données renvoyées par un message REST sortant dans le code JavaScript.

    Un objet RESTResponseV2 est renvoyé par les méthodes RESTMessageV2execute() et executeAsync().

    Vous pouvez utiliser cette API dans des applications incluses dans le périmètre ou dans le périmètre global.

    Cette API s’exécute dans l’espace de noms sn_ws .

    RESTResponseV2 : getAllHeaders()

    Renvoie tous les en-têtes contenus dans la réponse, y compris les en-têtes en double.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    Liste <GlideHTTPHeader> Liste des en-têtes contenus dans la réponse. Chaque en-tête est représenté sous la forme d’un objet GlideHTTPHeader qui contient le nom et la valeur de l’en-tête.

    L’exemple de code suivant montre comment appeler l’API de table REST, puis répertorie tous les en-têtes trouvés dans la réponse.

    var request = new sn_ws.RESTMessageV2();
    request.setEndpoint('http://<SN_Instance_host>/api/now/table/incident');
    request.setHttpMethod('GET');
    
    request.setBasicAuth('username', 'password');
    request.setRequestHeader("Accept", "application/json");
    var res = request.execute();
    if (res.getStatusCode() != 200) {
      gs.info('Bad Request');
    }
    
    var headers = res.getAllHeaders();
    for(var i in headers){
      gs.info(headers[i].name + ': ' + headers[i].value);
    }

    En-têtes de réponses

    X-Is-Logged-In: true
    X-Transaction-ID: e3003cb2db8c
    X-Total-Count: 66
    X-Content-Type-Options: nosniff
    Pragma: no-store,no-cache
    Cache-Control: no-cache,no-store,must-revalidate,max-age=-1
    Expires: 0
    Content-Type: application/json;charset=UTF-8
    Date: Fri, 14 May 2021 16:05:10 GMT
    Connection: close
    Server: ServiceNow
    JSESSIONID=5041870726ADADFAB2EE2BF8E7E01596; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_user=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_user_session=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_user_route=glide.f1aa2015b3fa5fa8dfe567386cde8fd5; Max-Age=2147483647; Expires=Wed, 01-Jun-2089 19:19:17 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: glide_session_store=AF003CB2DB8CF8103DD9C39D139619C7; Max-Age=1800; Expires=Fri, 14-May-2021 16:35:10 GMT; Path=/; HttpOnly; SameSite=None; Secure
    Set-Cookie: BIGipServerpool_ddershem=2643023626.45630.0000; path=/; Httponly; Secure; SameSite=None; Secure
    Strict-Transport-Security: max-age=63072000; includeSubDomains

    RESTResponseV2 : getBody()

    Obtient le contenu du corps de la réponse REST.

    Utilisez cette fonction lorsque vous souhaitez obtenir le corps de la demande comme contenu de texte. N’utilisez pas cette méthode lors de l’enregistrement de la réponse en tant que pièce jointe binaire. Si un objet RESTMessageV2 appelle la fonction saveResponseBodyAsAttachment(...) l’utilisation de getBody() sur l’objet RESTResponseV2 associé provoquera une erreur. Lors de l’enregistrement de la réponse en tant que pièce jointe, en cas d’échec du message REST sortant, appelez getErrorMessage() sur la réponse pour récupérer le contenu du corps.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne Corps de la réponse REST.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var responseBody = response.getBody();

    RESTResponseV2 : getCookies()

    Renvoie tous les cookies inclus dans la réponse.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    Objet Tableau de chaînes représentant les cookies. Itérez dans le tableau pour effectuer des opérations sur chaque cookie.

    Affichez les cookies individuels de la réponse.

    var cookies = response.getCookies();
    for (var i = 0; i < cookies.length; i++) {
      gs.info('cookie: ' + cookies.get(i));
    }
    Sortie :
    cookie: JSESSIONID=4135AA97A5D12DA22EF614AA2B0CAFD8.node20; Path=/; Secure; HttpOnly
    cookie: SABASESSIONID=370152970.36895.0000; path=/

    RESTResponseV2 : getErrorCode()

    Obtient le code d’erreur numérique en cas d’erreur pendant la transaction REST.

    Ce code d’erreur est spécifique au , il ne s’agit pas d’un Now Platformcode d’erreur HTTP. Fournissez ce code d’erreur si vous avez besoin d’aide de l’assistance clientèle ServiceNow.

    Remarque :
    Pour récupérer le contenu du message d’erreur réel, utilisez la méthode getBody( ).
    Tableau 7. Paramètres
    Nom Type Description
    Aucun
    Tableau 8. Renvoie
    Type Description
    Numéro Code d’erreur numérique, par exemple 1 pour le délai d’expiration du socket.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var errorCode = response.getErrorCode();

    RESTResponseV2 : getErrorMessage()

    Obtient le message d’erreur en cas d’erreur lors de la transaction REST.

    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    Chaîne Message d'erreur.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var errorMsg = response.getErrorMessage();

    RESTResponseV2 : getHeader(nom de chaîne)

    Obtient la valeur d’un en-tête spécifié.

    Tableau 11. Paramètres
    Nom Type Description
    nom Chaîne Nom de l’en-tête pour lequel vous voulez la valeur, par exemple Set-Cookie.
    Tableau 12. Renvoie
    Type Description
    Chaîne Valeur de l’en-tête spécifié.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var headerVal = response.getHeader("Content-Type");

    RESTResponseV2 : getHeaders()

    Obtient tous les en-têtes renvoyés dans la réponse REST et les valeurs associées.

    Remarque :
    Si un en-tête est présent plus d’une fois dans la réponse, tel qu’un en-tête Set-Cookie, cette fonction renvoie uniquement le dernier des en-têtes en double. Pour renvoyer tous les en-têtes, y compris les doublons, utilisez la fonction getAllHeaders( ).
    Tableau 13. Paramètres
    Nom Type Description
    Aucun
    Tableau 14. Renvoie
    Type Description
    Objet Objet qui mappe le nom de chaque en-tête à la valeur associée.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var headers = response.getHeaders();

    RESTResponseV2 : getQueryString()

    Obtient la requête entièrement résolue envoyée au point de terminaison REST.

    Cette requête contient l’URL du point de terminaison ainsi que toutes les valeurs affectées aux variables dans le message REST. Utilisez cette méthode uniquement pour les réponses aux demandes directes. Cette méthode n’est pas prise en charge pour les demandes envoyées de façon asynchrone ou les demandes envoyées à l’aide d’un Serveur MID.

    Tableau 15. Paramètres
    Nom Type Description
    Aucun
    Tableau 16. Renvoie
    Type Description
    Chaîne Requête entièrement résolue.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var queryString = response.getQueryString();

    RESTResponseV2 : getResponseAttachmentSysid()

    Obtient la valeur sys_id de la pièce jointe créée à partir du contenu du corps de la réponse.

    Si l’objet RESTMessageV2 associé à cette réponse a appelé la fonction saveResponseBodyAsAttachment(...), utilisez getResponseAttachmentSysid() pour obtenir la sys_id de l’enregistrement de pièce jointe créé. Utilisez cette fonction lorsque vous souhaitez effectuer des opérations supplémentaires avec le nouvel enregistrement de pièce jointe.

    Tableau 17. Paramètres
    Nom Type Description
    Aucun
    Tableau 18. Renvoie
    Type Description
    Chaîne Sys_id du nouvel enregistrement de pièce jointe.

    RESTResponseV2 : getStatusCode()

    Obtient le code d’état HTTP numérique renvoyé par le fournisseur REST.

    Tableau 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    Type Description
    Numéro Code d’état numérique retourné par le fournisseur REST, par exemple 200 pour une réponse réussie.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var statusCode = response.getStatusCode();

    RESTResponseV2 - haveError()

    Indique si une erreur s’est produite lors de la transaction REST.

    Tableau 21. Paramètres
    Nom Type Description
    Aucun
    Tableau 22. Renvoie
    Type Description
    booléen Renvoie la valeur vrai s’il y a eu une erreur, faux s’il n’y a pas eu d’erreur.
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var error = response.haveError();

    RESTResponseV2 : waitForResponse(Number timeoutSecs)

    Définissez le délai pendant lequel l’instance attend une réponse du fournisseur de service Web.

    Cette méthode remplace la propriété glide.rest.outbound.ecc_response.timeout de cette réponse REST.

    Tableau 23. Paramètres
    Nom Type Description
    timeoutSecs Numéro Durée, en secondes, d’attente de cette réponse.
    Tableau 24. Renvoie
    Type Description
    nul
    var sm = new sn_ws.RESTMessageV2("Yahoo Finance","get"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.executeAsync();
    response.waitForResponse(60);