FtpWebRequest.BeginGetRequestStream(AsyncCallback, Object) Methode

Definitie

Begint asynchroon met het openen van de inhoudsstroom van een aanvraag voor schrijven.

public:
 override IAsyncResult ^ BeginGetRequestStream(AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);
override this.BeginGetRequestStream : AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginGetRequestStream (callback As AsyncCallback, state As Object) As IAsyncResult

Parameters

callback
AsyncCallback

Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de bewerking is voltooid.

state
Object

Een door de gebruiker gedefinieerd object dat informatie over de bewerking bevat. Dit object wordt doorgegeven aan de callback gemachtigde wanneer de bewerking is voltooid.

Retouren

Een IAsyncResult exemplaar dat de status van de bewerking aangeeft.

Uitzonderingen

Een eerdere aanroep van deze methode of GetRequestStream() is nog niet voltooid.

Er kan geen verbinding met de FTP-server tot stand worden gebracht.

De Method eigenschap is niet ingesteld op UploadFile.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een asynchrone bewerking start om de stroom van een aanvraag op te halen. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor het FtpWebRequest klasseoverzicht.

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

Opmerkingen

U moet de asynchrone bewerking voltooien door de EndGetRequestStream methode aan te roepen. EndGetRequestStream Wordt meestal aangeroepen door de methode waarnaar wordt verwezen door callback. Als u de status van de bewerking wilt bepalen, controleert u de eigenschappen in het IAsyncResult object dat door deze methode wordt geretourneerd.

Deze methode wordt niet geblokkeerd tijdens het wachten op de stream. Als u dit wilt blokkeren, roept GetRequestStream u deze methode aan.

Zie Synchrone methoden asynchroon aanroepen voor gedetailleerde informatie over het gebruik van het asynchrone programmeermodel.

Note

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.

Notities voor bellers

Met deze methode wordt netwerkverkeer gegenereerd.

Van toepassing op

Zie ook