FtpWebRequest.GetResponse Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 true
wartość , 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.