Bagikan melalui


FtpWebRequest.GetResponse Metode

Definisi

Mengembalikan respons server 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

Mengembalikan

Referensi WebResponse yang berisi FtpWebResponse instans. Objek ini berisi respons server FTP terhadap permintaan tersebut.

Pengecualian

GetResponse() atau BeginGetResponse(AsyncCallback, Object) telah dipanggil untuk instans ini.

-atau-

Proksi HTTP diaktifkan, dan Anda mencoba menggunakan perintah FTP selain DownloadFile, , ListDirectoryatau ListDirectoryDetails.

EnableSsl diatur ke true, tetapi server tidak mendukung fitur ini.

-atau-

Timeout ditentukan dan batas waktu telah kedaluwarsa.

Contoh

Contoh kode berikut menunjukkan penyalinan file ke aliran data permintaan dan mengirim permintaan untuk menambahkan data ke file ke server. Contoh panggilan GetResponse untuk mengirim permintaan dan memblokir hingga respons dikembalikan oleh server.

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;
}

Keterangan

Untuk mengakses properti khusus FTP, Anda harus mentransmisikan objek yang WebResponse dikembalikan oleh metode ini ke FtpWebResponse.

GetResponse menyebabkan koneksi kontrol dibuat, dan mungkin juga membuat koneksi data. GetResponse memblokir hingga respons diterima. Untuk mencegah hal ini, Anda dapat melakukan operasi ini secara asinkron dengan memanggil BeginGetResponse metode dan EndGetResponse sebagai pengganti GetResponse.

Proxy Jika properti diatur, baik secara langsung atau dalam file konfigurasi, komunikasi dengan server FTP dilakukan melalui proksi.

WebException Jika dilemparkan, gunakan Response properti dan Status pengecualian untuk menentukan respons dari server.

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Catatan

Beberapa panggilan untuk GetResponse mengembalikan objek respons yang sama; permintaan tidak diterbitkan kembali.

Catatan Bagi Pemanggil

Metode ini menghasilkan lalu lintas jaringan.

Berlaku untuk

Lihat juga