GlideHTTPResponse - Global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 8 minutes de lecture
  • L’API GlideHTTPResponse fournit des méthodes utilitaires permettant d’exécuter des fonctions courantes avec les réponses HTTP Glide.

    GlideHTTPResponse : getAllHeaders()

    Renvoie une liste de tous les en-têtes.

    Tableau 1. Paramètres
    Nom Type Description
    Aucun
    Tableau 2. Renvoie
    Type Description
    Tableau Liste de tous les en-têtes associés à l’appel de point de terminaison.

    Cet exemple montre comment supprimer un incident spécifié de la table Incident à l’aide de la méthode del().

    var instance = 'dev12345';
    var username = 'admin';
    var password = 'yourpassword';
    
    // Instantiate request with ServiceNow API incidents table endpoint
    var request = new GlideHTTPRequest('https://'+instance+'.service-now.com/api/now/table/incident');
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Add the Accept header to get JSON response
    request.addHeader('Accept', 'application/json');
    
    // Execute the GET request
    var response = request.get();
    
    // Print all headers associated with the endpoint call
    gs.print(response.getAllHeaders());

    Sortie

    [
      X-Is-Logged-In: true, 
      X-Transaction-ID: 21a9223f1b13, 
      X-Total-Count: 69,
      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,
      Transfer-Encoding: chunked,
      Date: Tue, 26 Oct 2021 16:54:24 GMT,
      Server: ServiceNow,
      Set-Cookie: JSESSIONID=36B9B3E86C31E244A50AF38106376F9B; 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.455981d2bb48a9658f44c18e5f56313d; Max-Age=2147483647; Expires=Sun, 13-Nov-2089 20:08:31 GMT; Path=/; HttpOnly; SameSite=None; Secure,
      Set-Cookie: glide_session_store=E9A9223F1B1370107CF30D03CD4BCB8D; Max-Age=1800; Expires=Tue, 26-Oct-2021 17:24:24 GMT; Path=/; HttpOnly; SameSite=None; Secure,
      Set-Cookie: BIGipServerpool_jsmith=428037898.31808.0000; path=/; Httponly; Secure; SameSite=None; Secure, Strict-Transport-Security: max-age=63072000; includeSubDomains
    ]
    

    GlideHTTPResponse : getBody()

    Renvoie une chaîne contenant le corps de la réponse HTTP.

    Remarque :
    Si le flux a déjà été consulté, il n’est plus possible d’y accéder. Dans ce cas, la méthode retournera null.
    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Chaîne Corps de réponse HTTP.

    Cet exemple montre comment utiliser la méthode getBody() pour afficher le contenu des résultats de retour d’un appel de point de terminaison.

    var instance = 'dev12345';
    var username = 'admin';
    var password = 'yourpassword';
    
    // Instantiate request with ServiceNow API incidents table endpoint
    var request = new GlideHTTPRequest('https://'+instance+'.service-now.com/api/now/table/incident');
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Add the Accept header to get JSON response
    request.addHeader('Accept', 'application/json');
    request.addHeader('Content-Type','application/json');
     
    var response = request.post('{"short_description":"Test me"}');
     
    gs.print(response.getStatusCode());
    gs.print(response.getBody());

    Sortie

    201
    {
      "result":{
        "parent":"",
        "made_sla":"true",
        "caused_by":"",
        "watch_list":"",
        "upon_reject":"cancel",
        "sys_updated_on":"2021-10-26 14:59:22",
        "child_incidents":"0",
        "hold_reason":"",
        "task_effective_number":"INC0010003",
        "approval_history":"",
        "skills":"",
        "number":"INC0010003",
        "resolved_by":"",
        "sys_updated_by":"admin",
        "opened_by":{
          "link":"https://instanceName.servicenow.com/api/now/table/sys_user/6816f79cc0a8016401c5a33be04be441",
          "value":"6816f79cc0a8016401c5a33be04be441"
        },
        "user_input":"",
        "sys_created_on":"2021-10-26 14:59:22",
        "sys_domain":{
          "link":"https://instanceName.servicenow.com/api/now/table/sys_user_group/global",
          "value":"global"
        },
        "state":"1",
        "route_reason":"",
        "sys_created_by":"admin",
        "knowledge":"false",
        "order":"",
        "calendar_stc":"",
        "closed_at":"",
        "cmdb_ci":"",
        "delivery_plan":"",
        "contract":"",
        "impact":"3",
        "active":"true",
        "work_notes_list":"",
        "business_service":"",
        "priority":"5",
        "sys_domain_path":"/",
        "rfc":"",
        "time_worked":"",
        "expected_start":"",
        "opened_at":"2021-10-26 14:59:22",
        "business_duration":"",
        "group_list":"",
        "work_end":"",
        "caller_id":"",
        "reopened_time":"",
        "resolved_at":"",
        "approval_set":"",
        "subcategory":"",
        "work_notes":"",
        "universal_request":"",
        "short_description":"Test me",
        "close_code":"",
        "correlation_display":"",
        "delivery_task":"",
        "work_start":"",
        "assignment_group":"",
        "additional_assignee_list":"",
        "business_stc":"",
        "description":"",
        "calendar_duration":"",
        "close_notes":"",
        "notify":"1",
        "service_offering":"",
        "sys_class_name":"incident",
        "closed_by":"",
        "follow_up":"",
        "parent_incident":"",
        "sys_id":"a85f82ffdb5f30103dd9c39d13961916",
        "contact_type":"",
        "reopened_by":"",
        "incident_state":"1",
        "urgency":"3",
        "problem_id":"",
        "company":"",
        "reassignment_count":"0",
        "activity_due":"",
        "assigned_to":"",
        "severity":"3",
        "comments":"",
        "approval":"not requested",
        "sla_due":"",
        "comments_and_work_notes":"",
        "due_date":"",
        "sys_mod_count":"0",
        "reopen_count":"0",
        "sys_tags":"",
        "escalation":"0",
        "upon_approval":"proceed",
        "correlation_id":"",
        "location":"",
        "category":"inquiry"
      }
    }

    GlideHTTPResponse - getCookies()

    Renvoie la liste des cookies associés à un appel de point de terminaison.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    Tableau Liste contenant le nom et la valeur de chaque cookie sous forme de chaîne.

    Cet exemple montre comment utiliser la méthode getCookies() pour afficher les cookies associés à une réponse de point de terminaison.

    var instance = 'dev12345';
    var username = 'admin';
    var password = 'yourpassword';
    
    // Instantiate request with ServiceNow API incidents table endpoint
    var request = new GlideHTTPRequest('https://'+instance+'.service-now.com/api/now/table/incident');
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Add the Accept header to get JSON response
    request.addHeader('Accept', 'application/json');
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());
    gs.print(response.getCookies());

    Sortie

    200
    [
      JSESSIONID=B8E5C1C0E43FEA35EC0FCB323A9DF8D1; 
      Path=/; HttpOnly; SameSite=None; Secure, glide_user=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT;
      Path=/; HttpOnly; SameSite=None; Secure, glide_user_session=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT;
      Path=/; HttpOnly; SameSite=None; Secure, glide_user_route=glide.f1aa2015b3fa5fa8dfe567386cde8fd5; Max-Age=2147483647; Expires=Sun, 13-Nov-2089 21:02:31 GMT;
      Path=/; HttpOnly; SameSite=None; Secure, glide_session_store=7406BAB7DBDF30103DD9C39D13961966; Max-Age=1800; Expires=Tue, 26-Oct-2021 18:18:24 GMT;
      Path=/; HttpOnly; SameSite=None; Secure, BIGipServerpool_jsmith=2643023626.45630.0000; path=/; Httponly; Secure; SameSite=None; Secure
    ]

    GlideHTTPResponse : getErrorCode()

    Renvoie le code d’erreur actuel renvoyé par un point de terminaison.

    Tableau 7. Paramètres
    Nom Type Description
    Aucun
    Tableau 8. Renvoie
    Type Description
    Entier Le code d’erreur. 0 est renvoyé s’il n’y a pas d’erreur.

    Cet exemple montre comment afficher le code d’erreur du dernier message d’erreur transmis par l’instance pour l’appel REST associé à l’aide de la méthode getErrorCode().

    var instance = 'dev12345'; // Instance name
    var username = 'admin';
    var password = 'yourpassword';
    var sysId = '0123456789abcdef0123456789abcdef';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Delete the incident
    response = request.get();
    
    // Print the results: status code and response body
    gs.print(response.getStatusCode());
    
    // Get the last error message
    gs.print(response.getErrorCode());

    Sortie

    404
    1

    GlideHTTPResponse : getErrorMessage()

    Renvoie la dernière erreur rencontrée.

    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    Chaîne Chaîne de texte décrivant la dernière erreur rencontrée.

    Cet exemple montre comment afficher le dernier message d’erreur transmis par l’instance pour l’appel REST associé à l’aide de la méthode getErrorMessage().

    var instance = 'dev12345'; // Instance name
    var username = 'admin';
    var password = 'yourpassword';
    var sysId = '0123456789abcdef0123456789abcdef';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Try to get the non-existent incident
    response = request.get();
    
    // Print the results: status code and response body
    gs.print(response.getStatusCode());
    
    // Get the last error message
    gs.print(response.getErrorMessage());

    Sortie

    404
    Method failed: (/api/now/table/incident/0123456789abcdef0123456789abcdef) with code: 404

    GlideHTTPResponse : getHeader(nom de chaîne)

    Renvoie l’en-tête spécifié dans le paramètre transmis.

    Tableau 11. Paramètres
    Nom Type Description
    nom Chaîne Nom de l’en-tête de réponse à renvoyer, par exemple Content-Type.
    Tableau 12. Renvoie
    Type Description
    Chaîne Valeur de l’en-tête spécifié pour la réponse actuelle.

    Cet exemple montre comment afficher le contenu de l’en-tête Content-Type .

    var instance = 'dev12345'; // Instance name
    var username = 'admin';
    var password = 'yourpassword';
    var sysId = '0123456789abcdef0123456789abcdef';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results
    gs.print(response.getStatusCode());
    gs.print(response.getHeader("Content-Type"));

    Sortie

    200
    application/json

    GlideHTTPResponse : getHeaders()

    Renvoie tous les en-têtes associés à la réponse du point de terminaison.

    Tableau 13. Paramètres
    Nom Type Description
    Aucun
    Tableau 14. Renvoie
    Type Description
    Objet Objet contenant tous les en-têtes associés.

    Cet exemple montre comment afficher tous les en-têtes associés à un appel de point de terminaison à l’aide de la méthode getHeaders().

    var instance = 'dev12345'; // Instance name
    var username = 'admin';
    var password = 'yourpassword';
    var sysId = '0123456789abcdef0123456789abcdef';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results
    gs.print(response.getStatusCode());
    gs.print(response.getHeaders());

    Sortie

    200
    {
      Transfer-Encoding=chunked, 
      Strict-Transport-Security=max-age=63072000; includeSubDomains,
      Cache-Control=no-cache, no-store, must-revalidate,
      max-age=-1,
      Server=ServiceNow,
      X-Content-Type-Options=nosniff,
      X-Transaction-ID=399f8f73db13,
      X-Is-Logged-In=true,
      Set-Cookie=BIGipServerpool_jsmith=2643023626.45630.0000; path=/; Httponly; Secure; SameSite=None; Secure,
      Pragma=no-store,no-cache, Expires=0, Date=Tue, 26 Oct 2021 19:40:10 GMT, 
      Content-Type=application/json;charset=UTF-8
    }
    

    GlideHTTPResponse : getHttpMethod()

    Retourne la méthode HTTP associée à l’appel de point de terminaison spécifié.

    Tableau 15. Paramètres
    Nom Type Description
    Aucun
    Tableau 16. Renvoie
    Type Description
    Chaîne Méthode HTTP associée à l’appel de point de terminaison, telle que org.apache.commons.httpclient.methods.GetMethod@f83e63.

    Format : org.apache.commons.httpclient.methods.<Method>

    Cet exemple montre comment afficher la méthode HTTP utilisée lors de l’appel du point de terminaison associé à l’aide de la méthode getMethod( ).

    var instance = 'dev12345'; // Instance name
    var username = 'admin';
    var password = 'yourpassword';
    var sysId = '0123456789abcdef0123456789abcdef';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results
    gs.print(response.getStatusCode());
    gs.print(response.getHttpMethod());

    Sortie

    200
    org.apache.commons.httpclient.methods.GetMethod@f83e63

    GlideHTTPResponse : getStatusCode()

    Renvoie le dernier code d’état d’un appel de point de terminaison.

    Tableau 17. Paramètres
    Nom Type Description
    Aucun
    Tableau 18. Renvoie
    Type Description
    int Code d’état de la réponse HTTP.

    Cet exemple montre comment obtenir le code d’état d’un appel REST après son exécution à l’aide de la méthode getStatusCode().

    var instance = 'dev12345';
    var username = 'admin';
    var password = 'yourpassword';
    
    // Instantiate request with ServiceNow API incidents table endpoint
    var request = new GlideHTTPRequest('https://'+instance+'.service-now.com/api/now/table/incident');
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Add the 'sysparm_limit' parameter to limit the number of records returned
    request.addParameter('sysparm_limit', 1);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code
    gs.print(response.getStatusCode());

    Sortie :

    200

    GlideHTTPResponse - haveError()

    Renvoie un marqueur indiquant s’il y a eu des erreurs lors du traitement de l’appel de point de terminaison.

    Tableau 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    Type Description
    Booléen Marqueur indiquant s’il y a eu des erreurs lors du traitement de l’appel de point de terminaison.
    Valeurs valides :
    • true : une erreur s’est produite pendant le traitement du point de terminaison.
    • false : aucune erreur lors du traitement du point de terminaison.
    Renvoie la valeur true si une erreur s’est produite ou false s’il n’y a pas d’erreur

    Cet exemple montre qu’aucune erreur n’est signalée lorsque la sys_id d’un incident est valide à l’aide de la méthode haveError().

    var instance = 'dev12345';
    var username = 'admin';
    var password = 'yourpassword';
    
    // Valid sys_id of an incident record
    var sysId = 'a85f82ffdb5f30103dd9c39d13961916';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results
    gs.print(response.getStatusCode());
    gs.print(response.haveError());

    Sortie

    200
    false

    Cet exemple montre comment une erreur est marquée lorsque la sys_id d’un incident n’est pas valide (introuvable) à l’aide de la méthode haveError().

    var instance = 'dev12345';
    var username = 'admin';
    var password = 'yourpassword';
    
    // Invalid sys_id
    var sysId = 'a85f82ffdb5f30103dd9c39d13961832';  // Sys_id of the incident to get
    
    // Instantiate request with the ServiceNow API incident table endpoint for deletion of an incident
    var endpoint = 'https://' + instance + '.service-now.com/api/now/table/incident/' + sysId;
    var request = new GlideHTTPRequest(endpoint);
    
    // Add authentication data
    request.setBasicAuth(username, password);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results
    gs.print(response.getStatusCode());
    gs.print(response.haveError());

    Sortie

    404
    true