FtpWebResponse.GetResponseStream 메서드

정의

FTP 서버에서 보낸 응답 데이터를 포함하는 스트림을 검색합니다.

public:
 override System::IO::Stream ^ GetResponseStream();
public override System.IO.Stream GetResponseStream ();
override this.GetResponseStream : unit -> System.IO.Stream
Public Overrides Function GetResponseStream () As Stream

반환

응답과 함께 반환된 데이터를 포함하는 읽기 가능한 Stream 인스턴스이거나, 서버에서 응답 데이터를 반환하지 않은 경우 Null입니다.

예외

응답에 데이터 스트림이 반환되지 않은 경우

예제

다음 코드 예제에서는 요청에 대한 응답 스트림을 가져오는 방법을 보여 줍니다 ListDirectory .

static bool ListFilesOnServer( Uri^ serverUri )
{
   // The serverUri should start with the ftp:// scheme.
   if ( serverUri->Scheme != Uri::UriSchemeFtp )
   {
      return false;
   }

   // Get the object used to communicate with the server.
   FtpWebRequest^ request = dynamic_cast<FtpWebRequest^>(WebRequest::Create( serverUri ));
   request->Method = WebRequestMethods::Ftp::ListDirectory;

   // Get the ServicePoint object used for this request, and limit it to one connection.
   // In a real-world application you might use the default number of connections (2),
   // or select a value that works best for your application.
   ServicePoint^ sp = request->ServicePoint;
   Console::WriteLine( "ServicePoint connections = {0}.", sp->ConnectionLimit );
   sp->ConnectionLimit = 1;
   FtpWebResponse^ response = dynamic_cast<FtpWebResponse^>(request->GetResponse());

   // The following streams are used to read the data returned from the server.
   Stream^ responseStream = nullptr;
   StreamReader^ readStream = nullptr;
   try
   {
      responseStream = response->GetResponseStream();
      readStream = gcnew StreamReader( responseStream,System::Text::Encoding::UTF8 );
      if ( readStream != nullptr )
      {
         // Display the data received from the server.
         Console::WriteLine( readStream->ReadToEnd() );
      }

      Console::WriteLine( "List status: {0}", response->StatusDescription );
   }
   finally
   {
      if ( readStream != nullptr )
      {
         readStream->Close();
      }

      if ( response != nullptr )
      {
         response->Close();
      }
   }

   return true;
}
public static bool ListFilesOnServer(Uri serverUri)
{
    // The serverUri should start with the ftp:// scheme.
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    request.Method = WebRequestMethods.Ftp.ListDirectory;

    // Get the ServicePoint object used for this request, and limit it to one connection.
    // In a real-world application you might use the default number of connections (2),
    // or select a value that works best for your application.

    ServicePoint sp = request.ServicePoint;
    Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
    sp.ConnectionLimit = 1;

    FtpWebResponse response = (FtpWebResponse) request.GetResponse();

    // The following streams are used to read the data returned from the server.
    Stream responseStream = null;
    StreamReader readStream = null;
    try
    {
        responseStream = response.GetResponseStream();
        readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8);

        if (readStream != null)
        {
            // Display the data received from the server.
            Console.WriteLine(readStream.ReadToEnd());
        }
        Console.WriteLine("List status: {0}",response.StatusDescription);
    }
    finally
    {
        if (readStream != null)
        {
            readStream.Close();
        }
        if (response != null)
        {
            response.Close();
        }
    }

    return true;
}

설명

데이터를 읽은 후 스트림을 닫아야 합니다. 스트림이 포함된 개체를 닫으면 스트림이 FtpWebResponse 자동으로 닫힙니다.

요청 메서드가 또는 ListDirectory이 아니면 예외가 throw됩니다DownloadFile.

적용 대상

추가 정보