FtpWebRequest.GetRequestStream Método

Definición

Recupera la secuencia usada para cargar datos en un servidor FTP.

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

Devoluciones

Instancia grabable que Stream se usa para almacenar los datos que se van a enviar al servidor mediante la solicitud actual.

Excepciones

BeginGetRequestStream(AsyncCallback, Object) se ha llamado a y no se ha completado.

O bien

Un proxy HTTP está habilitado e intentó usar un comando FTP distinto de DownloadFile, ListDirectoryo ListDirectoryDetails.

No se pudo establecer una conexión con el servidor FTP.

La Method propiedad no está establecida UploadFile en o AppendFile.

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 al servidor para cargar los datos y anexarlos a un archivo.

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

Establezca las propiedades de solicitud antes de llamar al GetRequestStream método . Después de escribir los datos en la secuencia, debe cerrar la secuencia antes de enviar la solicitud.

Si no ha establecido la Method propiedad UploadFile en o AppendFile, no puede obtener la secuencia.

GetRequestStream bloquea mientras espera la secuencia. Para evitar esto, llame al BeginGetRequestStream método en lugar de GetRequestStream.

Note

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, vea Network Tracing in the .NET Framework.

Notas a los autores de las llamadas

Este método genera tráfico de red.

Se aplica a

Consulte también