FtpWebRequest.GetRequestStream Método

Definição

Recupera o fluxo usado para carregar dados para um 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

Devoluções

Uma instância gravável Stream usada para armazenar dados a serem enviados ao servidor pelo pedido atual.

Exceções

BeginGetRequestStream(AsyncCallback, Object) foi chamado e não foi concluído.

-ou-

Um proxy HTTP está ativado, e tentou usar um comando FTP diferente de DownloadFile, ListDirectory, ou ListDirectoryDetails.

Não foi possível estabelecer uma ligação ao servidor FTP.

A Method propriedade não está definida como UploadFile ou AppendFile.

Exemplos

O exemplo de código seguinte demonstra como copiar um ficheiro para o fluxo de dados de um pedido e enviar um pedido ao servidor para carregar os dados e anexá-los a um ficheiro.

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

Observações

Defina as propriedades do pedido antes de chamar o GetRequestStream método. Depois de escrever os dados no fluxo, deve encerrar o fluxo antes de enviar o pedido.

Se não definiu a Method propriedade para UploadFile ou AppendFile, não consegue obter o stream.

GetRequestStream bloqueia enquanto espera pela stream. Para evitar isto, chame-se ao BeginGetRequestStream método em vez de GetRequestStream.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Rastreamento de Rede no .NET Framework.

Notas para Chamadores

Este método gera tráfego de rede.

Aplica-se a

Ver também