Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe FtpWebRequest

 

Implementa um cliente de protocolo FTP.

Namespace:   System.Net
Assembly:  System (em System.dll)

System.Object
  System.MarshalByRefObject
    System.Net.WebRequest
      System.Net.FtpWebRequest

public sealed class FtpWebRequest : WebRequest

NomeDescrição
System_CAPS_pubpropertyAuthenticationLevel

Obtém ou define valores que indicam o nível de autenticação e representação usada para esta solicitação.(Herdado de WebRequest.)

System_CAPS_pubpropertyCachePolicy

Obtém ou define a política de cache para essa solicitação.(Herdado de WebRequest.)

System_CAPS_pubpropertyClientCertificates

Obtém ou define os certificados usados para estabelecer uma conexão criptografada ao servidor FTP.

System_CAPS_pubpropertyConnectionGroupName

Obtém ou define o nome do grupo de conexão que contém o ponto de serviço usado para enviar a solicitação atual.(Substitui o WebRequest.ConnectionGroupName.)

System_CAPS_pubpropertyContentLength

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Obtém ou define um valor que é ignorado pela classe FtpWebRequest.(Substitui o WebRequest.ContentLength.)

System_CAPS_pubpropertyContentOffset

Obtém ou define um deslocamento de bytes no arquivo que está sendo baixado por essa solicitação.

System_CAPS_pubpropertyContentType

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Sempre lança uma NotSupportedException.(Substitui o WebRequest.ContentType.)

System_CAPS_pubpropertyCreatorInstance

Obsoleto. Quando substituído em uma classe descendente, obtém o objeto de fábrica derivado de IWebRequestCreate classe usada para criar o WebRequest instanciado para fazer a solicitação para o URI especificado.(Herdado de WebRequest.)

System_CAPS_pubpropertyCredentials

Obtém ou define as credenciais usadas para se comunicar com o servidor FTP.(Substitui o WebRequest.Credentials.)

System_CAPS_pubpropertySystem_CAPS_staticDefaultCachePolicy

Define a política de cache padrão para todas as solicitações FTP.

System_CAPS_pubpropertyEnableSsl

Obtém ou define um Boolean que especifica se uma conexão SSL deve ser usada.

System_CAPS_pubpropertyHeaders

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Obtém um vazio WebHeaderCollection objeto.(Substitui o WebRequest.Headers.)

System_CAPS_pubpropertyImpersonationLevel

Obtém ou define o nível de representação para a solicitação atual.(Herdado de WebRequest.)

System_CAPS_pubpropertyKeepAlive

Obtém ou define um valor Boolean que especifica se a conexão de controle com o servidor FTP é fechada depois que a solicitação é concluída.

System_CAPS_pubpropertyMethod

Obtém ou define o comando a ser enviado ao servidor FTP.(Substitui o WebRequest.Method.)

System_CAPS_pubpropertyPreAuthenticate

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Sempre gera um NotSupportedException.(Substitui o WebRequest.PreAuthenticate.)

System_CAPS_pubpropertyProxy

Obtém ou define o proxy usado para se comunicar com o servidor FTP.(Substitui o WebRequest.Proxy.)

System_CAPS_pubpropertyReadWriteTimeout

Obtém ou define um tempo limite durante a leitura ou gravação em um fluxo.

System_CAPS_pubpropertyRenameTo

Obtém ou define o novo nome de um arquivo que está sendo renomeado.

System_CAPS_pubpropertyRequestUri

Obtém o URI solicitado por essa instância.(Substitui o WebRequest.RequestUri.)

System_CAPS_pubpropertyServicePoint

Obtém o objeto ServicePoint usado para conexão ao servidor FTP.

System_CAPS_pubpropertyTimeout

Obtém ou define o número de milissegundos de espera de uma solicitação.(Substitui o WebRequest.Timeout.)

System_CAPS_pubpropertyUseBinary

Obtém ou define um valor de Boolean que especifica o tipo de dados para as transferências de arquivos.

System_CAPS_pubpropertyUseDefaultCredentials

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Sempre gera um NotSupportedException.(Substitui o WebRequest.UseDefaultCredentials.)

System_CAPS_pubpropertyUsePassive

Obtém ou define o comportamento do processo de transferência de dados de um aplicativo cliente.

NomeDescrição
System_CAPS_pubmethodAbort()

Encerra uma operação FTP assíncrona.(Substitui o WebRequest.Abort().)

System_CAPS_pubmethodBeginGetRequestStream(AsyncCallback, Object)

Começa assincronamente abrindo o fluxo de conteúdo de uma solicitação para gravação.(Substitui o WebRequest.BeginGetRequestStream(AsyncCallback, Object).)

System_CAPS_pubmethodBeginGetResponse(AsyncCallback, Object)

Começa a enviar uma solicitação e receber uma resposta de um servidor FTP de maneira assíncrona.(Substitui o WebRequest.BeginGetResponse(AsyncCallback, Object).)

System_CAPS_pubmethodCreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.(Herdado de MarshalByRefObject.)

System_CAPS_pubmethodEndGetRequestStream(IAsyncResult)

Termina uma operação assíncrona pendente iniciada com BeginGetRequestStream.(Substitui o WebRequest.EndGetRequestStream(IAsyncResult).)

System_CAPS_pubmethodEndGetResponse(IAsyncResult)

Encerra uma operação assíncrona pendente iniciada com BeginGetResponse.(Substitui o WebRequest.EndGetResponse(IAsyncResult).)

System_CAPS_pubmethodEquals(Object)

Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetLifetimeService()

Recupera o objeto atual de serviço de vida útil que controla a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)

System_CAPS_pubmethodGetRequestStream()

Recupera o fluxo usado para carregar dados para um servidor FTP.(Substitui o WebRequest.GetRequestStream().)

System_CAPS_pubmethodGetRequestStreamAsync()

Quando substituído em uma classe descendente, retorna um Stream para gravar dados no recurso da Internet como uma operação assíncrona.(Herdado de WebRequest.)

System_CAPS_pubmethodGetResponse()

Retorna a resposta do servidor FTP.(Substitui o WebRequest.GetResponse().)

System_CAPS_pubmethodGetResponseAsync()

Quando é substituído em uma classe descendente, retorna uma resposta a uma solicitação à Internet como uma operação assíncrona.(Herdado de WebRequest.)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Obtém um objeto de serviço de tempo de vida para controlar a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)

System_CAPS_pubmethodToString()

Retorna uma string que representa o objeto atual.(Herdado de Object.)

NomeDescrição
System_CAPS_pubinterfaceSystem_CAPS_privmethodISerializable.GetObjectData(SerializationInfo, StreamingContext)

Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Quando substituído em uma classe descendente, popula uma instância SerializationInfo com os dados necessários para serializar o WebRequest.(Herdado de WebRequest.)

To obtain an instance of T:System.Net.FtpWebRequest, use the M:System.Net.WebRequest.Create(System.String) method. You can also use the T:System.Net.WebClient class to upload and download information from an FTP server. Using either of these approaches, when you specify a network resource that uses the FTP scheme (for example, "ftp://contoso.com") the T:System.Net.FtpWebRequest class provides the ability to programmatically interact with FTP servers.

The URI may be relative or absolute. If the URI is of the form "ftp://contoso.com/%2fpath" (%2f is an escaped '/'), then the URI is absolute, and the current directory is /path. If, however, the URI is of the form "ftp://contoso.com/path", first the .NET Framework logs into the FTP server (using the user name and password set by the P:System.Net.FtpWebRequest.Credentials property), then the current directory is set to <UserLoginDirectory>/path.

You must have a valid user name and password for the server or the server must allow anonymous logon. You can specify the credentials used to connect to the server by setting the P:System.Net.FtpWebRequest.Credentials property or you can include them in the P:System.Uri.UserInfo portion of the URI passed to the Overload:System.Net.WebRequest.Create method. If you include P:System.Uri.UserInfo information in the URI, the P:System.Net.FtpWebRequest.Credentials property is set to a new network credential with the specified user name and password information.

System_CAPS_cautionCuidado

Unless the P:System.Net.FtpWebRequest.EnableSsl property is true, all data and commands, including your user name and password information, are sent to the server in clear text. Anyone monitoring network traffic can view your credentials and use them to connect to the server. If you are connecting to an FTP server that requires credentials and supports Secure Sockets Layer (SSL), you should set P:System.Net.FtpWebRequest.EnableSsl to true.

You must have T:System.Net.WebPermission to access the FTP resource; otherwise, a T:System.Security.SecurityException exception is thrown.

Specify the FTP command to send to the server by setting the P:System.Net.FtpWebRequest.Method property to a value defined in the T:System.Net.WebRequestMethods.Ftp structure. To transmit text data, change the P:System.Net.FtpWebRequest.UseBinary property from its default value (true) to false. For details and restrictions, see P:System.Net.FtpWebRequest.Method.

When using an T:System.Net.FtpWebRequest object to upload a file to a server, you must write the file content to the request stream obtained by calling the M:System.Net.FtpWebRequest.GetRequestStream method or its asynchronous counterparts, the M:System.Net.FtpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object) and M:System.Net.FtpWebRequest.EndGetRequestStream(System.IAsyncResult) methods. You must write to the stream and close the stream before sending the request.

Requests are sent to the server by calling the M:System.Net.FtpWebRequest.GetResponse method or its asynchronous counterparts, the M:System.Net.FtpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object) and M:System.Net.FtpWebRequest.EndGetResponse(System.IAsyncResult) methods. When the requested operation completes, an T:System.Net.FtpWebResponse object is returned. The T:System.Net.FtpWebResponse object provides the status of the operation and any data downloaded from the server.

You can set a time-out value for reading or writing to the server by using the P:System.Net.FtpWebRequest.ReadWriteTimeout property. If the time-out period is exceeded, the calling method throws a T:System.Net.WebException with T:System.Net.WebExceptionStatus set to F:System.Net.WebExceptionStatus.Timeout.

When downloading a file from an FTP server, if the command was successful, the contents of the requested file are available in the response object's stream. You can access this stream by calling the M:System.Net.FtpWebResponse.GetResponseStream method. For more information, see T:System.Net.FtpWebResponse.

If the P:System.Net.FtpWebRequest.Proxy property is set, either directly or in a configuration file, communications with the FTP server are made through the specified proxy. If the specified proxy is an HTTP proxy, only the F:System.Net.WebRequestMethods.Ftp.DownloadFile, F:System.Net.WebRequestMethods.Ftp.ListDirectory, and F:System.Net.WebRequestMethods.Ftp.ListDirectoryDetails commands are supported.

Only downloaded binary content is cached; that is, content received using the F:System.Net.WebRequestMethods.Ftp.DownloadFile command with the P:System.Net.FtpWebRequest.UseBinary property set to true.

Multiple T:System.Net.FtpWebRequests reuse existing connections, if possible.

For more information about the FTP protocol, see RFC 959, "File Transfer Protocol," available at http://www.rfc-editor.org/http://www.ietf.org/rfc/rfc959.txt.

The following code example demonstrates deleting a file from an FTP server.

public static bool DeleteFileOnServer(Uri serverUri)
{
    // The serverUri parameter should use the ftp:// scheme.
    // It contains the name of the server file that is to be deleted.
    // Example: ftp://contoso.com/someFile.txt.
    // 

    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.DeleteFile;

    FtpWebResponse response = (FtpWebResponse) request.GetResponse();
    Console.WriteLine("Delete status: {0}",response.StatusDescription);  
    response.Close();
    return true;
}

The following code example demonstrates downloading a file from an FTP server by using the T:System.Net.WebClient class.

public static bool DisplayFileFromServer(Uri serverUri)
{
    // The serverUri parameter should start with the ftp:// scheme.
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    WebClient request = new WebClient();

    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    try 
    {
        byte [] newFileData = request.DownloadData (serverUri.ToString());
        string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
        Console.WriteLine(fileString);
    }
    catch (WebException e)
    {
        Console.WriteLine(e.ToString());
    }
    return true;
}

The following code example demonstrates using asynchronous operations to upload a file to an FTP server.

using System;
using System.Net;
using System.Threading;

using System.IO;
namespace Examples.System.Net
{
    public class FtpState
    {
        private ManualResetEvent wait;
        private FtpWebRequest request;
        private string fileName;
        private Exception operationException = null;
        string status;

        public FtpState()
        {
            wait = new ManualResetEvent(false);
        }

        public ManualResetEvent OperationComplete
        {
            get {return wait;}
        }

        public FtpWebRequest Request
        {
            get {return request;}
            set {request = value;}
        }

        public string FileName
        {
            get {return fileName;}
            set {fileName = value;}
        }
        public Exception OperationException
        {
            get {return operationException;}
            set {operationException = value;}
        }
        public string StatusDescription
        {
            get {return status;}
            set {status = value;}
        }
    }
    public class AsynchronousFtpUpLoader
    {  
        // Command line arguments are two strings:
        // 1. The url that is the name of the file being uploaded to the server.
        // 2. The name of the file on the local machine.
        //
        public static void Main(string[] args)
        {
            // Create a Uri instance with the specified URI string.
            // If the URI is not correctly formed, the Uri constructor
            // will throw an exception.
            ManualResetEvent waitObject;

            Uri target = new Uri (args[0]);
            string fileName = args[1];
            FtpState state = new FtpState();
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
            request.Method = WebRequestMethods.Ftp.UploadFile;

            // This example uses anonymous logon.
            // The request is anonymous by default; the credential does not have to be specified. 
            // The example specifies the credential only to
            // control how actions are logged on the server.

            request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");

            // Store the request in the object that we pass into the
            // asynchronous operations.
            state.Request = request;
            state.FileName = fileName;

            // Get the event to wait on.
            waitObject = state.OperationComplete;

            // Asynchronously get the stream for the file contents.
            request.BeginGetRequestStream(
                new AsyncCallback (EndGetStreamCallback), 
                state
            );

            // Block the current thread until all operations are complete.
            waitObject.WaitOne();

            // The operations either completed or threw an exception.
            if (state.OperationException != null)
            {
                throw state.OperationException;
            }
            else
            {
                Console.WriteLine("The operation completed - {0}", state.StatusDescription);
            }
        }
        private static void EndGetStreamCallback(IAsyncResult ar)
        {
            FtpState state = (FtpState) ar.AsyncState;

            Stream requestStream = null;
            // End the asynchronous call to get the request stream.
            try
            {
                requestStream = state.Request.EndGetRequestStream(ar);
                // Copy the file contents to the request stream.
                const int bufferLength = 2048;
                byte[] buffer = new byte[bufferLength];
                int count = 0;
                int readBytes = 0;
                FileStream stream = File.OpenRead(state.FileName);
                do
                {
                    readBytes = stream.Read(buffer, 0, bufferLength);
                    requestStream.Write(buffer, 0, readBytes);
                    count += readBytes;
                }
                while (readBytes != 0);
                Console.WriteLine ("Writing {0} bytes to the stream.", count);
                // IMPORTANT: Close the request stream before sending the request.
                requestStream.Close();
                // Asynchronously get the response to the upload request.
                state.Request.BeginGetResponse(
                    new AsyncCallback (EndGetResponseCallback), 
                    state
                );
            } 
            // Return exceptions to the main application thread.
            catch (Exception e)
            {
                Console.WriteLine("Could not get the request stream.");
                state.OperationException = e;
                state.OperationComplete.Set();
                return;
            }

        }

        // The EndGetResponseCallback method  
        // completes a call to BeginGetResponse.
        private static void EndGetResponseCallback(IAsyncResult ar)
        {
            FtpState state = (FtpState) ar.AsyncState;
            FtpWebResponse response = null;
            try 
            {
                response = (FtpWebResponse) state.Request.EndGetResponse(ar);
                response.Close();
                state.StatusDescription = response.StatusDescription;
                // Signal the main application thread that 
                // the operation is complete.
                state.OperationComplete.Set();
            }
            // Return exceptions to the main application thread.
            catch (Exception e)
            {
                Console.WriteLine ("Error getting response.");
                state.OperationException = e;
                state.OperationComplete.Set();
            }
        }
    }
}

WebPermission

for accessing the resource referenced by this request. Associated enumeration: F:System.Net.NetworkAccess.Connect.

.NET Framework
Disponível desde 2.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: