FtpWebRequest.BeginGetRequestStream(AsyncCallback, Object) Methode

Definition

Beginnt das asynchrone Öffnen des Inhaltsstreams einer Anforderung zum Schreiben.Begins asynchronously opening a request's content stream for writing.

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

Parameter

callback
AsyncCallback

Ein AsyncCallback-Delegat, der auf die Methode verweist, die bei Abschluss des Vorgangs aufgerufen werden soll.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen über den Vorgang enthält.A user-defined object that contains information about the operation. Dieses Objekt wird bei Abschluss des Vorgangs an den callback-Delegaten übergeben.This object is passed to the callback delegate when the operation completes.

Gibt zurück

Eine IAsyncResult-Instanz, die den Status des Vorgangs angibt.An IAsyncResult instance that indicates the status of the operation.

Ausnahmen

Ein vorheriger Aufruf dieser Methode oder GetRequestStream() wurde noch nicht abgeschlossen.A previous call to this method or GetRequestStream() has not yet completed.

Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.A connection to the FTP server could not be established.

Die Method-Eigenschaft ist nicht auf UploadFile festgelegt.The Method property is not set to UploadFile.

Beispiele

Im folgenden Codebeispiel wird das Starten eines asynchronen Vorgangs zum Abrufen des Datenstroms einer Anforderung veranschaulicht.The following code example demonstrates beginning an asynchronous operation to get a request's stream. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die Übersicht über die FtpWebRequest-Klasse bereitgestellt wird.This code example is part of a larger example provided for the FtpWebRequest class overview.

// 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.
//
static void Main()
{
   array<String^>^args = Environment::GetCommandLineArgs();

   // 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 = gcnew Uri( args[ 1 ] );
   String^ fileName = args[ 2 ];
   FtpState^ state = gcnew FtpState;
   FtpWebRequest ^ request = dynamic_cast<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 = gcnew 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( gcnew 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 != nullptr )
   {
      throw state->OperationException;
   }
   else
   {
      Console::WriteLine( "The operation completed - {0}", state->StatusDescription );
   }
}
// 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);
    }
}

Hinweise

Um den asynchronen Vorgang abzuschließen, müssen Sie die EndGetRequestStream-Methode aufrufen.You must complete the asynchronous operation by calling the EndGetRequestStream method. In der Regel wird EndGetRequestStream von der Methode aufgerufen, auf die von callbackverwiesen wird.Typically, EndGetRequestStream is called by the method referenced by callback. Überprüfen Sie die Eigenschaften im IAsyncResult Objekt, das von dieser Methode zurückgegeben wird, um den Status des Vorgangs zu bestimmen.To determine the state of the operation, check the properties in the IAsyncResult object returned by this method.

Diese Methode wird während des Wartens auf den Stream nicht blockiert.This method does not block while waiting for the stream. Um zu blockieren, wird GetRequestStream anstelle dieser Methode aufgerufen.To block, call GetRequestStream in place of this method.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter Asynchrones Aufrufen synchroner Methoden.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Hinweise für Aufrufer

Diese Methode generiert Netzwerk Datenverkehr.This method generates network traffic.

Gilt für:

Siehe auch