프로그래매틱 방식으로 URL 내보내기 호출

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기4분
  • 프로그래밍 언어에서 URL 내보내기를 호출하여 스크립트 또는 웹 서비스에서 데이터를 동적으로 내보냅니다.

    시작하기 전에

    필요한 역할: 없음

    이 태스크 정보

    다음 절차에는 .Net 프레임워크 호출을 위해 C#에서 URL 내보내기를 호출하는 방법을 보여 주는 코드 샘플이 포함되어 있습니다.

    프로시저

    1. 다음 임포트를 추가합니다.
      using System.Net;
      using System.IO;
    2. Download 메서드를 호출합니다.
      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. 다음과 같이 Download 메서드를 만듭니다.
      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;
          }