Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe FtpWebRequest

Implementa un client File Transfer Protocol (FTP).

Spazio dei nomi:  System.Net
Assembly:  System (in System.dll)

public sealed class FtpWebRequest : WebRequest

Il tipo FtpWebRequest espone i seguenti membri.

  NomeDescrizione
Proprietà pubblicaAuthenticationLevelOttiene o imposta i valori che indicano il livello di autenticazione e di rappresentazione utilizzati per questa richiesta. (Ereditato da WebRequest)
Proprietà pubblicaCachePolicyOttiene o imposta i criteri di cache per questa richiesta. (Ereditato da WebRequest)
Proprietà pubblicaClientCertificatesOttiene o imposta i certificati utilizzati per stabilire una connessione crittografata al server FTP.
Proprietà pubblicaConnectionGroupNameOttiene o imposta il nome del gruppo di connessioni che contiene il punto del servizio utilizzato per inviare la richiesta corrente. (Esegue l'override di WebRequest.ConnectionGroupName).
Proprietà pubblicaContentLengthInfrastruttura. Ottiene o imposta un valore che viene ignorato da FtpWebRequest classe. (Esegue l'override di WebRequest.ContentLength).
Proprietà pubblicaContentOffsetOttiene o imposta un offset di byte nel file scaricato dalla richiesta.
Proprietà pubblicaContentTypeInfrastruttura. Genera sempre un oggetto NotSupportedException. (Esegue l'override di WebRequest.ContentType).
Proprietà pubblicaCreatorInstance Obsoleta. Quando viene eseguito l'override in una classe discendente, ottiene l'oggetto factory derivato dalla classe IWebRequestCreate utilizzato per creare la classe istanziata WebRequest per effettuare la richiesta all'URI specificato. (Ereditato da WebRequest)
Proprietà pubblicaCredentialsottiene o imposta le credenziali utilizzate per comunicare con il server FTP. (Esegue l'override di WebRequest.Credentials).
Proprietà pubblicaMembro staticoDefaultCachePolicyDefinisce i criteri della cache predefiniti per tutte le richieste FTP.
Proprietà pubblicaEnableSslOttiene o imposta un oggetto Boolean che specifica che una connessione SSL deve essere utilizzata.
Proprietà pubblicaHeadersInfrastruttura. Ottiene un oggetto vuoto WebHeaderCollection oggetto. (Esegue l'override di WebRequest.Headers).
Proprietà pubblicaImpersonationLevelOttiene o imposta il livello di rappresentazione per la richiesta corrente. (Ereditato da WebRequest)
Proprietà pubblicaKeepAliveOttiene o imposta un oggetto Boolean valore che specifica se la connessione del controllo sul server FTP viene chiusa dopo che la richiesta viene completata.
Proprietà pubblicaMethodOttiene o imposta il comando inviare al server FTP. (Esegue l'override di WebRequest.Method).
Proprietà pubblicaPreAuthenticateInfrastruttura. Genera sempre un oggetto NotSupportedException. (Esegue l'override di WebRequest.PreAuthenticate).
Proprietà pubblicaProxyOttiene o imposta il proxy utilizzato per comunicare con il server FTP. (Esegue l'override di WebRequest.Proxy).
Proprietà pubblicaReadWriteTimeoutOttiene o imposta un timeout durante la lettura da o scrivendo un flusso.
Proprietà pubblicaRenameToOttiene o imposta il nome di un file che viene rinominato.
Proprietà pubblicaRequestUriottiene l'URI richiesto da questa istanza. (Esegue l'override di WebRequest.RequestUri).
Proprietà pubblicaServicePointottiene ServicePoint oggetto utilizzato per la connessione al server FTP.
Proprietà pubblicaTimeoutOttiene o imposta il numero di millisecondi di attesa di una richiesta. (Esegue l'override di WebRequest.Timeout).
Proprietà pubblicaUseBinaryOttiene o imposta un oggetto Boolean valore che specifica il tipo di dati per i trasferimenti di file.
Proprietà pubblicaUseDefaultCredentialsInfrastruttura. Genera sempre un oggetto NotSupportedException. (Esegue l'override di WebRequest.UseDefaultCredentials).
Proprietà pubblicaUsePassiveOttiene o imposta il comportamento del processo di trasferimento dei dati di un'applicazione client.
In alto

  NomeDescrizione
Metodo pubblicoAbortTermina un'operazione asincrona FTP. (Esegue l'override di WebRequest.Abort()).
Metodo pubblicoBeginGetRequestStreamIniziale in modo asincrono che aprono il flusso del contenuto di una richiesta per la scrittura. (Esegue l'override di WebRequest.BeginGetRequestStream(AsyncCallback, Object)).
Metodo pubblicoBeginGetResponseAvviare che inviano una richiesta e che riceve una risposta da un server FTP in modo asincrono. (Esegue l'override di WebRequest.BeginGetResponse(AsyncCallback, Object)).
Metodo pubblicoCreateObjRefCrea un oggetto che contiene tutte le informazioni rilevanti obbligatorio per generare un proxy utilizzato per comunicare con un oggetto remoto. (Ereditato da MarshalByRefObject)
Metodo pubblicoEndGetRequestStreamAl termine di un'operazione asincrona in attesa avviata con BeginGetRequestStream. (Esegue l'override di WebRequest.EndGetRequestStream(IAsyncResult)).
Metodo pubblicoEndGetResponseAl termine di un'operazione asincrona in attesa avviata con BeginGetResponse. (Esegue l'override di WebRequest.EndGetResponse(IAsyncResult)).
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetLifetimeServiceRecupera l'oggetto corrente del servizio di durata che controlla i criteri di durata dell'istanza. (Ereditato da MarshalByRefObject)
Metodo pubblicoGetRequestStreamRecupera il flusso utilizzato per caricare i dati in un server FTP. (Esegue l'override di WebRequest.GetRequestStream()).
Metodo pubblicoGetRequestStreamAsyncQuando viene sottoposto a override in una classe discendente, restituisce un Stream per la scrittura dei dati nella risorse Internet come operazione asincrona. (Ereditato da WebRequest)
Metodo pubblicoGetResponseRestituisce la risposta del server FTP. (Esegue l'override di WebRequest.GetResponse()).
Metodo pubblicoGetResponseAsyncQuando sottoposto a override in una classe discendente, restituisce una risposta a una richiesta Internet come operazione asincrona. (Ereditato da WebRequest)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoInitializeLifetimeServiceOttiene un oggetto di servizio di durata per controllare i criteri di durata dell'istanza. (Ereditato da MarshalByRefObject)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoISerializable.GetObjectDataInfrastruttura. Quando viene sottoposto a override in una classe discendente, compila un'istanza di SerializationInfo con i dati necessari a serializzare WebRequest. (Ereditato da WebRequest)
In alto

Per ottenere un'istanza di FtpWebRequest, utilizzare Create metodo. È inoltre possibile utilizzare WebClient una classe per caricare e scaricare le informazioni da un server FTP. Utilizzo dell'uno di questi approcci, quando si specifica una risorsa di rete che utilizza la combinazione di FTP, ad esempio "ftp://contoso.com") FtpWebRequest la classe consente a livello di codice di interagire con server FTP.

URI può essere relativo o assoluto. Se URI sarà il form "ftp://contoso.com/%2fpath" (%2f è un “/") utilizzato caratteri di escape, quindi URI è assoluto e la directory corrente è /path. Se, tuttavia, URI sarà il form "ftp://contoso.com/path", innanzitutto .NET Framework vengono registrati nel server FTP (tramite il nome utente e la password impostate da Credentials la proprietà, quindi la directory corrente è impostata su <UserLoginDirectory>/path.

È necessario disporre di un nome utente valido e la password del server o il server deve consentire l'accesso anonimo. È possibile specificare credenziali utilizzate per connettersi al server impostando Credentials la proprietà oppure è possibile includerli in UserInfo parte dell'URI passato a Create metodo. Se si importano UserInfo informazioni nell'URI, Credentials la proprietà è impostata su una nuova credenziali di rete con il nome utente e le informazioni sulle password specificati.

Nota di avvisoAttenzione

a meno che EnableSsl la proprietà è true, tutti i dati e controlli, inclusi il nome utente e le informazioni sulle password, vengono inviati al server in testo non crittografato. Chiunque traffico di rete supervisione possibile visualizzare le credenziali e utilizzarli per connettersi al server. Se si effettua la connessione a un server FTP che richiede le credenziali e supporta SSL (SSL), è necessario impostare EnableSsl in true.

È necessario avere WebPermission per accedere alla risorsa FTP, in caso contrario, a SecurityException l'eccezione viene generata un'eccezione.

Specificare il comando FTP inviare al server impostando Method proprietà a un valore definito in WebRequestMethods.Ftp struttura. Per trasmettere i dati di testo, modificare UseBinary proprietà dal valore predefinito (true) a false. per i dettagli e le restrizioni, vedere Method.

Quando si utilizzano FtpWebRequest oggetto per caricare un file in un server, è necessario scrivere il contenuto del file al flusso di richieste ottenuto chiamando GetRequestStream metodo o le relative controparti asincrone, BeginGetRequestStream e EndGetRequestStream metodi. È necessario scrivere nel flusso e chiusura del flusso prima di inviare la richiesta.

Le richieste inviate al server chiamando GetResponse metodo o le relative controparti asincrone, BeginGetResponse e EndGetResponse metodi. quando l'operazione richiesta completa, FtpWebResponse l'oggetto viene restituito. FtpWebResponse l'oggetto fornisce lo stato dell'operazione e di tutti i dati scaricati dal server.

È possibile impostare un valore di timeout per la lettura o la scrittura nel server tramite ReadWriteTimeout proprietà. Se il periodo di timeout viene superato, il metodo di chiamata genera un'eccezione WebException con WebExceptionStatus impostare su Timeout.

In scaricare un file da un server FTP, se il comando è riuscita, il contenuto del file richiesto è disponibile nel flusso dell'oggetto di risposta. È possibile accedere a questo flusso chiamando GetResponseStream metodo. Per ulteriori informazioni, vedere FtpWebResponse.

se Proxy la proprietà viene impostata direttamente, o o in un file di configurazione, le comunicazioni con il server FTP vengono effettuate tramite il proxy specificato. Se il proxy specificato è un proxy HTTP, solo DownloadFile, ListDirectorye ListDirectoryDetails i controlli sono supportati.

Solo il contenuto scaricato binario viene memorizzato nella cache; ovvero contenuto ricevuto tramite DownloadFile comando con UseBinary insieme di proprietà su true.

Più FtpWebRequestconnessioni esistenti di riutilizzo di oggetti, se possibile.

Per ulteriori informazioni sul protocollo FTP, vedere la specifica RFC 959, “protocollo FTP,„ disponibile http://www.rfc-editor.org/.

Il seguente codice di esempio viene mostrato come eliminare un file da un server FTP.


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


Nell'esempio di codice seguente viene illustrato scaricare un file da un server FTP mediante WebClient classe.


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


Nell'esempio di codice seguente viene illustrato l'utilizzo delle operazioni asincrone per caricare un file in un server FTP.


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


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

  • WebPermission 

    per accedere alla risorsa a cui fa riferimento la richiesta. enumerazione associata: Connect.

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft