Thank you for your feedback.
Form temporarily unavailable. Please try again or contact docfeedback@servicenow.com to submit your comments.

Call URL export programmatically

Log in to subscribe to topics and get notified when content changes.

Call URL export programmatically

You can dynamically export data from a script or web service by calling a URL export from any programming language.

About this task

The following procedure includes code samples that demonstrate calling a URL export in C# for a .Net framework call:

Procedure

  1. Add the following Imports:
    using System.Net;
    using System.IO;
  2. Call the Download method:
    static void Main(string[] args)
    
         {
            // Call to DownloadFile method supplying the URL and location to save CSV file locally
            int read = DownloadFile("https://<instance>.service-now.com/incident_list.do?CSV&sysparm_query=priority=1&sysparm_orderby=assigned_to",
                         "c:\\test\\incident.csv");
        }
  3. Create a Download method as follows:
    public static int DownloadFile(String url,
                                           String localFilename)
        {
            // Function will return the number of bytes processed
            // to the caller. Initialize to 0 here.
            int bytesProcessed = 0;
            // Assign values to these objects here so that they can
            // be referenced in the finally block
            Stream remoteStream = null;
            Stream localStream = null;
            WebResponse response = null;
            // Use a try/catch/finally block as both the WebRequest and Stream
            // classes throw exceptions upon error
            try
            {
                // Create a request for the specified remote file name
                WebRequest request = WebRequest.Create(url);
                // Create the credentials required for Basic Authentication
                System.Net.ICredentials cred = new System.Net.NetworkCredential("user_name", "password");
                // Add the credentials to the request
                request.Credentials = cred;
                if (request != null)
                {
                    // Send the request to the server and retrieve the
                    // WebResponse object 
                    response = request.GetResponse();
                    if (response != null)
                    {
                        // Once the WebResponse object has been retrieved,
                        // get the stream object associated with the response's data
                        remoteStream = response.GetResponseStream();
                        // Create the local file
                        localStream = File.Create(localFilename);
                        // Allocate a 1k buffer
                        byte[] buffer = new byte[1024];
                        int bytesRead;
                        // Simple do/while loop to read from stream until
                        // no bytes are returned
                        do
                        {
                            // Read data (up to 1k) from the stream
                            bytesRead = remoteStream.Read(buffer, 0, buffer.Length);
                            // Write the data to the local file
                            localStream.Write(buffer, 0, bytesRead);
                            // Increment total bytes processed
                            bytesProcessed += bytesRead;
                        } while (bytesRead > 0);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                // Close the response and streams objects here 
                // to make sure they're closed even if an exception
                // is thrown at some point
                if (response != null) response.Close();
                if (remoteStream != null) remoteStream.Close();
                if (localStream != null) localStream.Close();
            }
            // Return total bytes processed to caller.
            return bytesProcessed;
        }
Feedback