FtpWebRequest.GetResponse Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Devuelve la respuesta del servidor 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
Devoluciones
Referencia a WebResponse que contiene una instancia de FtpWebResponse. Este objeto contiene la respuesta del servidor FTP a la solicitud.
Excepciones
Ya se ha llamado a GetResponse() o BeginGetResponse(AsyncCallback, Object) para esta instancia.
o bien
Está habilitado un proxy HTTP y se ha intentado utilizar un comando FTP distinto de DownloadFile, ListDirectory o ListDirectoryDetails.
EnableSsl está establecida en true
, pero el servidor no admite esta característica.
o bien
Se especificó Timeout y el tiempo de espera ha expirado.
Ejemplos
En el ejemplo de código siguiente se muestra cómo copiar un archivo en el flujo de datos de una solicitud y enviar una solicitud para anexar datos a un archivo al servidor. El ejemplo llama GetResponse a para enviar la solicitud y bloquear hasta que el servidor devuelva la respuesta.
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;
}
Comentarios
Para tener acceso a las propiedades específicas de FTP, debe convertir el WebResponse objeto devuelto por este método a FtpWebResponse.
GetResponse hace que se establezca una conexión de control y también puede crear una conexión de datos. GetResponse se bloquea hasta que se recibe la respuesta. Para evitar esto, puede realizar esta operación de forma asincrónica llamando a los BeginGetResponse métodos y EndGetResponse en lugar de GetResponse.
Si se establece la Proxy propiedad, ya sea directamente o en un archivo de configuración, las comunicaciones con el servidor FTP se realizan a través del proxy.
Si se produce una WebException excepción , use las Response propiedades y Status de la excepción para determinar la respuesta del servidor.
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.
Nota
Varias llamadas para devolver el mismo objeto de respuesta; la solicitud no se vuelve a GetResponse emitir.
Notas a los autores de las llamadas
Este método genera tráfico de red.