GlideHTTPRequest - Global

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 6 minutes de lecture
  • L’API GlideHTTPRequest fournit des méthodes utilitaires permettant d’exécuter des fonctions courantes avec les requêtes HTTP Glide.

    Vous pouvez utiliser cette API dans des scripts globaux côté serveur. Pour utiliser cette classe, instanciez un objet GlideHTTPRequest à l’aide du constructeur. Le constructeur nécessite une URL de point de terminaison comme paramètre d’entrée.

    GlideHTTPRequest - addHeader(nom de chaîne, valeur de chaîne)

    Ajoute un en-tête à votre requête HTTP.

    Tableau 1. Paramètres
    Nom Type Description
    nom Chaîne Nom de l’en-tête, par exemple Accepter ou Type de contenu.
    valide Chaîne Valeur de l’en-tête, par exemple application/json.
    Tableau 2. Renvoie
    Type Description
    nul

    Cet exemple ajoute l’en-tête de demande « Accepter » et renvoie le nombre d’incidents à partir d’une instance ServiceNow, en analysant les réponses JSON ou XML.

    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('(JSON) Incidents returned: ' + JSON.parse(response.getBody()).result.length);
    
    // Replace the Accept header to get XML response
    request.addHeader('Accept', 'application/xml');
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());
    gs.print('(XML) Incidents returned: ' + gs.xmlToJSON(response.getBody()).response.result.length);

    Sortie

    200
    (JSON) Incidents returned: 66
    200
    (XML) Incidents returned: 66

    GlideHTTPRequest - addParameter(nom de chaîne, valeur de chaîne)

    Ajoute un paramètre à votre requête HTTP.

    Tableau 3. Paramètres
    Nom Type Description
    nom Chaîne Paramètre à ajouter, tel que sysparm_limit.
    valide Chaîne Valeur du paramètre.
    Tableau 4. Renvoie
    Type Description
    nul

    Cet exemple montre comment ajouter le sysparm_limit paramètre à l’appel de point de terminaison REST pour limiter le nombre de réponses renvoyées.

    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 and number of records returned
    gs.print(response.getStatusCode());
    gs.print('Incidents returned: ' + JSON.parse(response.getBody()).result.length);

    Sortie :

    200
    Incidents returned: 1

    GlideHTTPRequest - setBasicAuth(String userName, String password)

    Définit un nom d’utilisateur et un mot de passe pour l’authentification de base.

    Tableau 5. Paramètres
    Nom Type Description
    userName Chaîne Nom d’utilisateur à utiliser pour l’authentification.
    mot de passe Chaîne Mot de passe de l’utilisateur à utiliser pour l’authentification.
    Tableau 6. Renvoie
    Type Description
    nul

    Cet exemple montre comment utiliser la méthode setBasicAuth() pour définir le nom d’utilisateur et le mot de passe pour l’appel de point de terminaison REST associé.

    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('(JSON) Incidents returned: ' + JSON.parse(response.getBody()).result.length);
    
    // Replace the Accept header to get XML response
    request.addHeader('Accept', 'application/xml');
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());
    gs.print('(XML) Incidents returned: ' + gs.xmlToJSON(response.getBody()).response.result.length);

    Sortie

    200
    (JSON) Incidents returned: 66
    200
    (XML) Incidents returned: 66

    GlideHTTPRequest : setContentType (type de chaîne)

    Définit l’en-tête Content-Type de votre requête HTTP sur la valeur spécifiée.

    Tableau 7. Paramètres
    Nom Type Description
    type Chaîne Type de contenu à définir, tel que application/json ou multipart/form-data. Pour plus d’informations sur le type de contenu, reportez-vous à la section https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type.
    Tableau 8. Renvoie
    Type Description
    nul

    Cet exemple montre comment définir l’en-tête de demande Content-Type pour un appel de point de terminaison REST à l’aide de la méthode setContentType().

    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);
    
    // Set up incident record to post
    
    // Set the Content-Type of the POST
    request.setContentType('application/json');
    
    // Execute the POST request
    var response = request.post();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());

    Sortie

    200
    

    GlideHTTPRequest : setFollowRedirect(boolean followRedirect)

    Active ou désactive l’option de redirection de suivi pour un appel de point de terminaison REST.

    Pour plus d’informations sur les redirections HTTP, reportez-vous à la section https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections.

    Tableau 9. Paramètres
    Nom Type Description
    followRedirect Booléen Marqueur qui indique si le point de terminaison doit suivre une redirection d’URL renvoyée par le point de terminaison.
    Valeurs valides :
    • true : à la suite de toute redirection renvoyée.
    • false : ignore toute redirection renvoyée.
    Valeur par défaut : true
    Tableau 10. Renvoie
    Type Description
    nul

    Cet exemple montre comment désactiver les redirections pour un appel de point de terminaison à l’aide de la méthode setFollowRedirect().

    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');
    
    // Turn off follow redirect - default is on (true)
    request.setFollowRedirect(false);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());

    Sortie

    200

    GlideHTTPRequest - setHttpTimeout(int timeout)

    Définit la valeur du délai HTTP en millisecondes.

    Tableau 11. Paramètres
    Nom Type Description
    timeout Entier Valeur de délai à définir.

    Unité : Millisecondes

    Tableau 12. Renvoie
    Type Description
    nul

    Cet exemple montre comment définir la valeur de délai d’expiration d’un appel de point de terminaison à l’aide de la méthode setTimeout().

    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');
    
    // Set the time out value
    request.setHttpTimeOut(1000);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());

    Sortie

    200

    GlideHTTPRequest : setLogLevel(String logLevel)

    Définit le niveau de journalisation d’une demande HTTP.

    Tableau 13. Paramètres
    Nom Type Description
    Niveau de connexion Chaîne Niveau de journalisation disponible.
    Remarque :
    Pour des raisons de performances, il est conseillé de laisser la journalisation des requêtes HTTP en production à l’adresse basic.

    Valeurs valides :

    • de base : couvre de nombreux attributs de la transaction HTTP, notamment l’hôte, le chemin d’accès, l’état de la réponse, etc.
    • élevé : inclut tous les en-têtes de demande, ainsi que tous les en-têtes de demande, la chaîne de requête et tous les en-têtes de basicréponse.
    • all : inclut tous les , ainsi que le corps de la demande et le corps de elevatedla réponse.

    Par défaut : basique

    Tableau 14. Renvoie
    Type Description
    nul

    Cet exemple montre comment définir le niveau de journal pour un appel de point de terminaison à l’aide de la méthode setLogLevel().

    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');
    
    // Set the time out value
    request.setLogLevel(elevated);
    
    // Execute the GET request
    var response = request.get();
    
    // Print the results: status code and number of records returned
    gs.print(response.getStatusCode());

    Sortie

    200

    GlideHTTPRequest : setupProxy(hôte de chaîne, port de chaîne)

    Définit l’hôte proxy et le port pour l’appel REST associé.

    Tableau 15. Paramètres
    Nom Type Description
    hôte Chaîne Hôte proxy
    port Chaîne Port proxy
    Tableau 16. Renvoie
    Type Description
    nul