FtpWebRequest.BeginGetRequestStream(AsyncCallback, Object) Metod

Definition

Börjar asynkront öppna en begärans innehållsström för skrivning.

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

Parametrar

callback
AsyncCallback

Ett AsyncCallback ombud som refererar till den metod som ska anropas när åtgärden är klar.

state
Object

Ett användardefinierat objekt som innehåller information om åtgärden. Det här objektet skickas till ombudet callback när åtgärden är klar.

Returer

En IAsyncResult instans som anger status för åtgärden.

Undantag

Ett tidigare anrop till den här metoden eller GetRequestStream() har ännu inte slutförts.

Det gick inte att upprätta en anslutning till FTP-servern.

Egenskapen Method är inte inställd på UploadFile.

Exempel

I följande kodexempel visas hur du påbörjar en asynkron åtgärd för att hämta en begärans dataström. Det här kodexemplet är en del av ett större exempel som tillhandahålls för klassöversikten FtpWebRequest .

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

Kommentarer

Du måste slutföra den asynkrona åtgärden genom att anropa EndGetRequestStream metoden. EndGetRequestStream Anropas vanligtvis av metoden som refereras av callback. Om du vill fastställa tillståndet för åtgärden kontrollerar du egenskaperna i objektet som IAsyncResult returneras av den här metoden.

Den här metoden blockerar inte i väntan på dataströmmen. Om du vill blockera anropar GetRequestStream du i stället för den här metoden.

Detaljerad information om hur du använder den asynkrona programmeringsmodellen finns i Anropa synkrona metoder asynkront.

Note

Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing i .NET Framework.

Anteckningar till anropare

Den här metoden genererar nätverkstrafik.

Gäller för

Se även