Ten artykuł został przetłumaczony przez maszynę. Aby wyświetlić jego treść w języku angielskim, zaznacz pole wyboru Angielski. Możesz też wyświetlić angielski tekst w okienku wyskakującym, przesuwając wskaźnik myszy nad konkretny tekst”.
Tłumaczenie
Angielski

Klasa FtpWebRequest

.NET Framework (current version)
 

Data opublikowania: październik 2016

Implementuje klienta protokołu FTP (File Transfer).

Przestrzeń nazw:   System.Net
Zestaw:  System (w System.dll)

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

public sealed class FtpWebRequest : WebRequest

NazwaOpis
System_CAPS_pubpropertyAuthenticationLevel

Pobiera lub ustawia wartość wskazującą poziom uwierzytelniania i personifikacji używany dla tego żądania.(Dziedziczone z WebRequest).

System_CAPS_pubpropertyCachePolicy

Pobiera lub ustawia zasady pamięci podręcznej dla tego żądania.(Dziedziczone z WebRequest).

System_CAPS_pubpropertyClientCertificates

Pobiera lub ustawia certyfikaty używane do ustanawiania połączenia szyfrowanego na serwerze FTP.

System_CAPS_pubpropertyConnectionGroupName

Pobiera lub ustawia nazwę grupy połączenia, który zawiera punkt usługi używane do wysyłania bieżącego żądania.(Przesłania WebRequest.ConnectionGroupName).

System_CAPS_pubpropertyContentLength

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Pobiera lub ustawia wartość, która jest ignorowane przez FtpWebRequest klasy.(Przesłania WebRequest.ContentLength).

System_CAPS_pubpropertyContentOffset

Pobiera lub ustawia Przesunięcie bajtów do pliku pobranego przez tego żądania.

System_CAPS_pubpropertyContentType

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Zawsze zgłasza NotSupportedException.(Przesłania WebRequest.ContentType).

System_CAPS_pubpropertyCreatorInstance

Nieaktualne. Gdy zostanie zastąpione w klasie elementu podrzędnego, pobiera obiekt fabryki pochodną IWebRequestCreate Klasa używana do tworzenia WebRequest utworzone dla zgłaszającego żądanie do określonego identyfikatora URI.(Dziedziczone z WebRequest).

System_CAPS_pubpropertyCredentials

Pobiera lub ustawia poświadczenia używane do komunikacji z serwerem FTP.(Przesłania WebRequest.Credentials).

System_CAPS_pubpropertySystem_CAPS_staticDefaultCachePolicy

Określa domyślne zasady pamięci podręcznej dla wszystkich żądań FTP.

System_CAPS_pubpropertyEnableSsl

Pobiera lub ustawia Boolean określająca, że połączenie SSL powinny być używane.

System_CAPS_pubpropertyHeaders

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Pobiera pusta WebHeaderCollection obiektu.(Przesłania WebRequest.Headers).

System_CAPS_pubpropertyImpersonationLevel

Pobiera lub ustawia poziom personifikacji dla bieżącego żądania.(Dziedziczone z WebRequest).

System_CAPS_pubpropertyKeepAlive

Pobiera lub ustawia Boolean wartość, która określa, czy połączenie sterowania na serwerze FTP jest zamknięte po ukończeniu żądania.

System_CAPS_pubpropertyMethod

Pobiera lub ustawia polecenia do wysyłania do serwera FTP.(Przesłania WebRequest.Method).

System_CAPS_pubpropertyPreAuthenticate

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Zawsze zgłasza NotSupportedException.(Przesłania WebRequest.PreAuthenticate).

System_CAPS_pubpropertyProxy

Pobiera lub ustawia proxy używane do komunikacji z serwerem FTP.(Przesłania WebRequest.Proxy).

System_CAPS_pubpropertyReadWriteTimeout

Pobiera lub ustawia limit czasu podczas odczytu z lub zapisu do strumienia.

System_CAPS_pubpropertyRenameTo

Pobiera lub ustawia nową nazwę pliku, którego nazwa jest zmieniana.

System_CAPS_pubpropertyRequestUri

Pobiera identyfikator URI żądanej przez to wystąpienie.(Przesłania WebRequest.RequestUri).

System_CAPS_pubpropertyServicePoint

Pobiera ServicePoint obiekt używany do łączenia się z serwerem FTP.

System_CAPS_pubpropertyTimeout

Pobiera lub ustawia liczbę milisekund oczekiwania na żądanie.(Przesłania WebRequest.Timeout).

System_CAPS_pubpropertyUseBinary

Pobiera lub ustawia Boolean wartość, która określa typ danych dla transferu plików.

System_CAPS_pubpropertyUseDefaultCredentials

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Zawsze zgłasza NotSupportedException.(Przesłania WebRequest.UseDefaultCredentials).

System_CAPS_pubpropertyUsePassive

Pobiera lub ustawia zachowanie aplikacji klienckiej proces transferu danych.

NazwaOpis
System_CAPS_pubmethodAbort()

Zakończenie operacji asynchronicznych FTP.(Przesłania WebRequest.Abort()).

System_CAPS_pubmethodBeginGetRequestStream(AsyncCallback, Object)

Rozpoczyna się asynchronicznie otwieranie strumienia zawartości żądania do zapisu.(Przesłania WebRequest.BeginGetRequestStream(AsyncCallback, Object)).

System_CAPS_pubmethodBeginGetResponse(AsyncCallback, Object)

Rozpoczyna wysyłanie żądania i asynchronicznie odbierania odpowiedzi z serwera FTP.(Przesłania WebRequest.BeginGetResponse(AsyncCallback, Object)).

System_CAPS_pubmethodCreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania używany do komunikacji z obiektu zdalnego serwera proxy.(Dziedziczone z MarshalByRefObject).

System_CAPS_pubmethodEndGetRequestStream(IAsyncResult)

Kończy się oczekująca operacja asynchroniczna pracę z BeginGetRequestStream.(Przesłania WebRequest.EndGetRequestStream(IAsyncResult)).

System_CAPS_pubmethodEndGetResponse(IAsyncResult)

Kończy się oczekująca operacja asynchroniczna pracę z BeginGetResponse.(Przesłania WebRequest.EndGetResponse(IAsyncResult)).

System_CAPS_pubmethodEquals(Object)

Sprawdza, czy podany obiekt jest równy aktualnemu obiektowi (Dziedziczone z Object).

System_CAPS_pubmethodGetHashCode()

Służy jako domyślna funkcji mieszania.(Dziedziczone z Object).

System_CAPS_pubmethodGetLifetimeService()

Pobiera bieżący okres istnienia obiektu usługi sterująca zasad okres istnienia dla tego wystąpienia.(Dziedziczone z MarshalByRefObject).

System_CAPS_pubmethodGetRequestStream()

Pobiera strumień służącego do przesyłania danych do serwera FTP.(Przesłania WebRequest.GetRequestStream()).

System_CAPS_pubmethodGetRequestStreamAsync()

Gdy zostanie zastąpione w klasie elementu podrzędnego, zwraca Stream do zapisywania danych do zasobu internetowego jako operację asynchroniczną.(Dziedziczone z WebRequest).

System_CAPS_pubmethodGetResponse()

Zwraca odpowiedzi z serwera FTP.(Przesłania WebRequest.GetResponse()).

System_CAPS_pubmethodGetResponseAsync()

Gdy zostanie zastąpione w klasie elementu podrzędnego, zwraca odpowiedzi na żądanie Internet jako operację asynchroniczną.(Dziedziczone z WebRequest).

System_CAPS_pubmethodGetType()

Pobiera Type bieżącego wystąpienia.(Dziedziczone z Object).

System_CAPS_pubmethodInitializeLifetimeService()

Uzyskuje obiektu usługi okres istnienia w celu kontroli zasad okres istnienia dla tego wystąpienia.(Dziedziczone z MarshalByRefObject).

System_CAPS_pubmethodToString()

Zwraca łańcuch znaków, reprezentujący aktualny obiekt. (Dziedziczone z Object).

NazwaOpis
System_CAPS_pubinterfaceSystem_CAPS_privmethodISerializable.GetObjectData(SerializationInfo, StreamingContext)

Ten interfejs API obsługuje infrastrukturę produkt i nie jest przeznaczony do użycia bezpośrednio w kodzie. Gdy zostanie zastąpione w klasie elementu podrzędnego, wypełnienie SerializationInfo wystąpienie o dane potrzebne do serializacji WebRequest.(Dziedziczone z WebRequest).

Aby uzyskać wystąpienia FtpWebRequest, użyj Create metody. Można również użyć WebClient klasy do przekazywania i pobierania informacji z serwera FTP. Przy użyciu jednej z tych metod, po określeniu zasobu sieciowego, który używa schematu FTP (na przykład "ftp://contoso.com") FtpWebRequest klasa oferuje możliwość programowego interakcję z serwerami FTP.

Identyfikator URI mogą być względną lub bezwzględną. Jeśli identyfikator URI ma postać "ftp://contoso.com/%2fpath" (% 2f jest oznaczenie "/"), to jest bezwzględny identyfikator URI i bieżący katalog jest /path. Jeśli jednak identyfikator URI ma postać "ftp://contoso.com/path", najpierw .NET Framework loguje się do serwera FTP (przy użyciu nazwy użytkownika i hasła ustawione przez Credentials Właściwości), a następnie bieżący katalog jest ustawiona na <UserLoginDirectory>/path.

Musi mieć prawidłową nazwę użytkownika i hasło dla serwera lub serwerze musi zezwalać na logowanie anonimowe. Można określić poświadczenia użyte do nawiązania połączenia z serwerem przez ustawienie Credentials lub właściwości można uwzględnić je w UserInfo część identyfikatora URI przekazane do Create metody. W przypadku uwzględnienia UserInfo informacji w identyfikatorze URI, Credentials właściwość jest ustawiona na nowych poświadczeń sieciowych z informacjami o nazwę i hasło użytkownika.

System_CAPS_cautionPrzestroga

O ile nie EnableSsl właściwość jest true, wszystkich danych i poleceń, w tym informacje nazwy i hasła użytkownika, są wysyłane do serwera w postaci zwykłego tekstu. Każdy monitorowanie ruchu w sieci można wyświetlić swoje poświadczenia i ich używać do łączenia się z serwerem. Jeśli łączysz się z serwerem FTP, który wymaga poświadczeń i obsługuje Secure Sockets Layer (SSL), należy ustawić EnableSsl do true.

Musi mieć WebPermission dostęp do zasobów FTP; w przeciwnym razie SecurityException jest zgłaszany wyjątek.

Określ polecenie FTP do wysyłania do serwera przez ustawienie Method na wartość zdefiniowana w WebRequestMethods.Ftp struktury. Przesyłać danych tekstowych, zmień UseBinary Właściwości z wartości domyślnej (true) do false. Szczegółowe informacje i ograniczenia, zobacz Method.

Przy użyciu FtpWebRequest obiektu do przekazania pliku do serwera, należy napisać zawartość pliku do strumienia żądania uzyskany przez wywołanie metody GetRequestStream metody lub ich odpowiedników asynchroniczne BeginGetRequestStream i EndGetRequestStream metody. Należy zapisać do strumienia i zamknąć strumień przed wysłaniem żądania.

Żądania są wysyłane do serwera przez wywołanie metody GetResponse metody lub ich odpowiedników asynchroniczne BeginGetResponse i EndGetResponse metody. Po zakończeniu żądanej operacji FtpWebResponse obiekt jest zwracany. FtpWebResponse Obiektu zawiera informacje o stanie operacji oraz wszystkie dane pobrane z serwera.

Można ustawić wartość limitu czasu do odczytu lub zapisu do serwera przy użyciu ReadWriteTimeout Właściwości. Po przekroczeniu limitu czasu przez wywołującego metodę WebException z WebExceptionStatus wartość Timeout.

Pobieranie pliku przez serwer FTP, jeśli polecenie zakończyło się pomyślnie, zawartość pliku żądanego są dostępne w strumieniu obiekt odpowiedzi. Dostęp do tego strumienia przez wywołanie metody GetResponseStream metody. Aby uzyskać więcej informacji, zobacz FtpWebResponse.

Jeśli Proxy właściwość jest ustawiona, albo bezpośrednio lub w pliku konfiguracji komunikacji z serwerem FTP odbywa się za pomocą określonego serwera proxy. Jeśli określony serwer proxy jest serwer proxy HTTP tylko DownloadFile, ListDirectory, i ListDirectoryDetails polecenia są obsługiwane.

Tylko pobranej zawartości binarne są buforowane; oznacza to, że zawartość odebranych przy użyciu DownloadFile polecenia UseBinary ustawić właściwość true.

Wiele FtpWebRequests, jeśli jest to możliwe ponowne użycie istniejących połączeń.

Aby uzyskać więcej informacji na temat protokołu FTP, zobacz RFC 959, "File Transfer Protocol" dostępne pod adresem http://www.rfc-editor.org/.

Poniższy przykład kodu demonstruje, usunięcie pliku z serwera 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;
}

Poniższy przykład kodu demonstruje, pobierania plików z serwera FTP za pomocą WebClient klasy.

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

Poniższy przykład kodu demonstruje, aby przekazać plik na serwerze FTP za pomocą operacji asynchronicznych.

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
Dostępne od 2.0

Wszystkie publiczne statyczne ( Shared w języku Visual Basic) elementy członkowskie tego typu są wątkowo bezpieczne. Dla żadnych elementów członkowskich wystąpień nie ma gwarancji bezpieczeństwa wątkowego.

Powrót do początku
Pokaż: