RESTResponseV2 - Inclus, global

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 5 minutes de lecture
  • L’API RESTResponseV2 fournit des méthodes qui permettent d’utiliser les données retournées par un message REST sortant en code JavaScript.

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

    Vous pouvez utiliser cette API dans les 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
    List<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 de suivi 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 en tant que contenu 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 appelé 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, si le message REST sortant échoue, 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 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 à travers le tableau pour effectuer des opérations sur chaque cookie.

    Afficher 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 au cours de la transaction REST.

    Ce code d’erreur est spécifique au , il ne s’agit Now Platformpas d’un code 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, tel que 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 au cours 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 souhaitez obtenir 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 plusieurs fois dans la réponse, par exemple 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 avec des réponses à des demandes directes. Cette méthode n’est pas prise en charge pour les demandes envoyées de manière asynchrone ou les demandes envoyées à l’aide d’un MID Server.

    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 appelle 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 renvoyé 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 true s’il y a eu une erreur, false 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 la durée pendant laquelle l’instance attend une réponse du fournisseur de services Web.

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

    Tableau 23. Paramètres
    Nom Type Description
    timeoutSecs (en anglais seulement) 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);