Udostępnij za pośrednictwem


FtpWebRequest.GetResponse Metoda

Definicja

Zwraca odpowiedź serwera FTP.

public:
 override System::Net::WebResponse ^ GetResponse();
public override System.Net.WebResponse GetResponse ();
override this.GetResponse : unit -> System.Net.WebResponse
Public Overrides Function GetResponse () As WebResponse

Zwraca

Odwołanie WebResponse zawierające FtpWebResponse wystąpienie. Ten obiekt zawiera odpowiedź serwera FTP na żądanie.

Wyjątki

GetResponse() lub BeginGetResponse(AsyncCallback, Object) został już wywołany dla tego wystąpienia.

-lub-

Serwer proxy HTTP jest włączony i podjęto próbę użycia polecenia FTP innego niż DownloadFile, ListDirectorylub ListDirectoryDetails.

EnableSsl jest ustawiona na truewartość , ale serwer nie obsługuje tej funkcji.

-lub-

Określono parametr a Timeout upłynął limit czasu.

Przykłady

Poniższy przykład kodu przedstawia kopiowanie pliku do strumienia danych żądania i wysyłanie żądania w celu dołączenia danych do pliku na serwer. Przykładowe wywołania GetResponse w celu wysłania żądania i zablokowania do momentu zwrócenia odpowiedzi przez serwer.

static bool AppendFileOnServer( String^ fileName, Uri^ serverUri )
{
   // The URI described by serverUri should use the ftp:// scheme.
   // It contains the name of the file on the server.
   // Example: ftp://contoso.com/someFile.txt. 
   // The fileName parameter identifies the file containing 
   // the data to be appended to the file on the server.
   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::AppendFile;
   StreamReader^ sourceStream = gcnew StreamReader( fileName );
   array<Byte>^fileContents = Encoding::UTF8->GetBytes( sourceStream->ReadToEnd() );
   sourceStream->Close();
   request->ContentLength = fileContents->Length;

   // This example assumes the FTP site uses anonymous logon.
   request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" );
   Stream^ requestStream = request->GetRequestStream();
   requestStream->Write( fileContents, 0, fileContents->Length );
   requestStream->Close();
   FtpWebResponse^ response = dynamic_cast<FtpWebResponse^>(request->GetResponse());
   Console::WriteLine( "Append status: {0}", response->StatusDescription );
   response->Close();
   return true;
}
public static bool AppendFileOnServer(string fileName, Uri serverUri)
{
    // The URI described by serverUri should use the ftp:// scheme.
    // It contains the name of the file on the server.
    // Example: ftp://contoso.com/someFile.txt.
    // The fileName parameter identifies the file containing
    // the data to be appended to the file on the server.

    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.AppendFile;

    StreamReader sourceStream = new StreamReader(fileName);
    byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
    sourceStream.Close();
    request.ContentLength = fileContents.Length;

    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();
    FtpWebResponse response = (FtpWebResponse) request.GetResponse();

    Console.WriteLine("Append status: {0}",response.StatusDescription);

    response.Close();
    return true;
}

Uwagi

Aby uzyskać dostęp do właściwości specyficznych dla protokołu FTP, należy rzutować WebResponse obiekt zwrócony przez tę metodę na FtpWebResponse.

GetResponse powoduje nawiązanie połączenia sterującego i może również utworzyć połączenie danych. GetResponse blokuje do momentu odebrania odpowiedzi. Aby temu zapobiec, można wykonać tę operację asynchronicznie, wywołując BeginGetResponse metody i EndGetResponse zamiast GetResponse.

Proxy Jeśli właściwość jest ustawiona, bezpośrednio lub w pliku konfiguracji, komunikacja z serwerem FTP odbywa się za pośrednictwem serwera proxy.

WebException Jeśli element zostanie zgłoszony, użyj Response właściwości i Status wyjątku, aby określić odpowiedź z serwera.

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .NET Framework.

Uwaga

Wiele wywołań, aby GetResponse zwrócić ten sam obiekt odpowiedzi; żądanie nie jest ponownie odbierane.

Uwagi dotyczące wywoływania

Ta metoda generuje ruch sieciowy.

Dotyczy

Zobacz też