Freigeben über


FileWebRequest.BeginGetRequestStream-Methode

Startet eine asynchrone Anforderung eines Stream-Objekts, das zum Schreiben von Daten verwendet werden soll.

Namespace: System.Net
Assembly: System (in system.dll)

Syntax

'Declaration
Public Overrides Function BeginGetRequestStream ( _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
'Usage
Dim instance As FileWebRequest
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginGetRequestStream(callback, state)
public override IAsyncResult BeginGetRequestStream (
    AsyncCallback callback,
    Object state
)
public:
virtual IAsyncResult^ BeginGetRequestStream (
    AsyncCallback^ callback, 
    Object^ state
) override
public IAsyncResult BeginGetRequestStream (
    AsyncCallback callback, 
    Object state
)
public override function BeginGetRequestStream (
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

Parameter

  • state
    Ein Objekt mit Zustandsinformationen für diese Anforderung.

Rückgabewert

Ein IAsyncResult, das auf die asynchrone Anforderung verweist.

Ausnahmen

Ausnahmetyp Bedingung

ProtocolViolationException

Die Method-Eigenschaft ist GET, und die Anwendung schreibt in den Stream.

InvalidOperationException

Der Stream wird von einem vorherigen Aufruf von BeginGetRequestStream verwendet.

ApplicationException

Kein Schreibstream verfügbar.

Hinweise

Die BeginGetRequestStream-Methode startet eine asynchrone Anforderung eines Streams, der zum Senden von Daten an eine Dateisystemressource verwendet wird. Die Rückrufmethode, die den AsyncCallback-Delegaten implementiert, verwendet zum Zurückgeben des Anforderungsstreams die EndGetRequestStream-Methode.

Beispiel

Im folgenden Codebeispiel wird BeginGetRequestStream zum Erstellen einer asynchronen Anforderung für ein Stream-Objekt verwendet.

Public Class RequestDeclare
    Public myFileWebRequest As FileWebRequest
    Public userinput As [String]
    
    
    Public Sub New()
        myFileWebRequest = Nothing
    End Sub ' New
End Class ' RequestDeclare


Class FileWebRequest_reqbeginend
    Public Shared allDone As New ManualResetEvent(False)
    
    ' Entry point which delegates to C-style main Private Function.
    Public Overloads Shared Sub Main()
        Main(System.Environment.GetCommandLineArgs())
    End Sub
    
    
    Overloads Shared Sub Main(args() As String)
        If args.Length < 2 Then
            Console.WriteLine(ControlChars.Cr + "Please enter the file name as command line parameter:")
            Console.WriteLine("Usage:FileWebRequest_reqbeginend <systemname>/<sharedfoldername>/<filename>")
        Console.WriteLine("Example: FileWebRequest_reqbeginend shafeeque/shaf/hello.txt")
        
        Else
            Try

                ' Place a webrequest.
                Dim myWebRequest As WebRequest = WebRequest.Create(("file://" + args(1)))
                
                ' Create an instance of the 'RequestDeclare' and associate the 'myWebRequest' to it.        
                Dim requestDeclare As New RequestDeclare()
                requestDeclare.myFileWebRequest = CType(myWebRequest, FileWebRequest)
                ' Set the 'Method' property of 'FileWebRequest' object to 'POST' method.
                requestDeclare.myFileWebRequest.Method = "POST"
                Console.WriteLine("Enter the string you want to write into the file:")
                requestDeclare.userinput = Console.ReadLine()
                
                ' Begin the Asynchronous request for getting file content using 'BeginGetRequestStream()' method .
                Dim r As IAsyncResult = CType(requestDeclare.myFileWebRequest.BeginGetRequestStream(AddressOf ReadCallback, requestDeclare), IAsyncResult)
                allDone.WaitOne()
                
                Console.Read()
            Catch e As ProtocolViolationException
                Console.WriteLine(("ProtocolViolationException is :" + e.Message))
            Catch e As InvalidOperationException
                Console.WriteLine(("InvalidOperationException is :" + e.Message))
            Catch e As UriFormatException
                Console.WriteLine(("UriFormatExceptionException is :" + e.Message))
            End Try

        End If 
    End Sub 'Main
    
    
    Private Shared Sub ReadCallback(ar As IAsyncResult)
        Try

            ' State of the request is asynchronous.
            Dim requestDeclare As RequestDeclare = CType(ar.AsyncState, RequestDeclare)
            Dim myFileWebRequest As FileWebRequest = requestDeclare.myFileWebRequest
            Dim sendToFile As [String] = requestDeclare.userinput
            
            ' End the Asynchronus request by calling the 'EndGetRequestStream()' method.
            Dim readStream As Stream = myFileWebRequest.EndGetRequestStream(ar)
            
            ' Convert the string into byte array.
            Dim encoder As New ASCIIEncoding()
            Dim byteArray As Byte() = encoder.GetBytes(sendToFile)
            
            ' Write to the stream.
            readStream.Write(byteArray, 0, sendToFile.Length)
            readStream.Close()
            allDone.Set()

            
            Console.WriteLine(ControlChars.Cr +"The String you entered was successfully written into the file.")
            Console.WriteLine(ControlChars.Cr +"Press Enter to continue.")

            Catch e As ApplicationException
            Console.WriteLine(("ApplicationException is :" + e.Message))
        End Try

    End Sub ' ReadCallback 
public class RequestDeclare
{
     public FileWebRequest myFileWebRequest;    
     public String userinput;
   
     public RequestDeclare()
    {
        myFileWebRequest = null;
    }
}

class FileWebRequest_reqbeginend
{
    public static ManualResetEvent allDone = new ManualResetEvent(false);

    static void Main(string[] args)
    {
      if (args.Length < 1)
      {
           Console.WriteLine("\nPlease enter the file name as command line parameter:");
            Console.WriteLine("Usage:FileWebRequest_reqbeginend <systemname>/<sharedfoldername>/<filename>\nExample:FileWebRequest_reqbeginend shafeeque/shaf/hello.txt");
        
      }  
      else
      {

        try
         {

              // Place a webrequest.
              WebRequest myWebRequest= WebRequest.Create("file://"+args[0]);
           
              // Create an instance of the 'RequestDeclare' and associate the 'myWebRequest' to it.        
              RequestDeclare requestDeclare = new RequestDeclare();
              requestDeclare.myFileWebRequest = (FileWebRequest)myWebRequest;
              // Set the 'Method' property of 'FileWebRequest' object to 'POST' method.
              requestDeclare.myFileWebRequest.Method="POST";
              Console.WriteLine("Enter the string you want to write into the file:");
              requestDeclare.userinput = Console.ReadLine();

              // Begin the Asynchronous request for getting file content using 'BeginGetRequestStream()' method .
              IAsyncResult r=(IAsyncResult) requestDeclare.myFileWebRequest.BeginGetRequestStream(new AsyncCallback(ReadCallback),requestDeclare);            
              allDone.WaitOne();

              Console.Read();
        }
        catch(ProtocolViolationException e)
        {
              Console.WriteLine("ProtocolViolationException is :"+e.Message);
        }
        catch(InvalidOperationException e)
        {
               Console.WriteLine("InvalidOperationException is :"+e.Message);
        }
        catch(UriFormatException e)
        {
            Console.WriteLine("UriFormatExceptionException is :"+e.Message);
         }
     }
    }

    private static void ReadCallback(IAsyncResult ar)
    {    

     try
     {

          // State of the request is asynchronous.
          RequestDeclare requestDeclare=(RequestDeclare) ar.AsyncState;
          FileWebRequest myFileWebRequest=requestDeclare.myFileWebRequest;
          String sendToFile = requestDeclare.userinput;

          // End the Asynchronus request by calling the 'EndGetRequestStream()' method.
          Stream readStream=myFileWebRequest.EndGetRequestStream(ar);
                    
          // Convert the string into byte array.
            
          ASCIIEncoding encoder = new ASCIIEncoding();
          byte[] byteArray = encoder.GetBytes(sendToFile);
        
          // Write to the stream.
          readStream.Write(byteArray,0,sendToFile.Length);
          readStream.Close();
          allDone.Set();
            
          Console.WriteLine("\nThe String you entered was successfully written into the file.");
         Console.WriteLine("\nPress Enter to continue.");    


     }
    catch(ApplicationException e)
      {
          Console.WriteLine("ApplicationException is :"+e.Message);
      }                

    }
public ref class RequestDeclare
{
public:
   FileWebRequest^ myFileWebRequest;
   String^ userinput;
   RequestDeclare()
   {
      myFileWebRequest = nullptr;
   }

};

ref class FileWebRequest_reqbeginend
{
public:
   static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );
   static void ReadCallback( IAsyncResult^ ar )
   {
      try
      {
         
         // State of the request is asynchronous.
         RequestDeclare^ requestDeclare = dynamic_cast<RequestDeclare^>(ar->AsyncState);
         FileWebRequest^ myFileWebRequest = requestDeclare->myFileWebRequest;
         String^ sendToFile = requestDeclare->userinput;
         
         // End the Asynchronus request by calling the 'EndGetRequestStream()' method.
         Stream^ readStream = myFileWebRequest->EndGetRequestStream( ar );
         
         // Convert the String* into Byte array.
         ASCIIEncoding^ encoder = gcnew ASCIIEncoding;
         array<Byte>^byteArray = encoder->GetBytes( sendToFile );
         
         // Write to the stream.
         readStream->Write( byteArray, 0, sendToFile->Length );
         readStream->Close();
         allDone->Set();
         Console::WriteLine( "\nThe String you entered was successfully written into the file." );
         Console::WriteLine( "\nPress Enter to continue." );
      }
      catch ( ApplicationException^ e ) 
      {
         Console::WriteLine( "ApplicationException is : {0}", e->Message );
      }

   }

};

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args->Length < 2 )
   {
      Console::WriteLine( "\nPlease enter the file name as command line parameter:" );
      Console::WriteLine( "Usage:FileWebRequest_reqbeginend <systemname>/<sharedfoldername>/<filename>\n" );
      Console::WriteLine( "Example:FileWebRequest_reqbeginend shafeeque/shaf/hello.txt" );
   }
   else
   {
      try
      {
         
         // Place a webrequest.
         WebRequest^ myWebRequest = WebRequest::Create( String::Concat( "file://", args[ 1 ] ) );
         
         // Create an instance of the 'RequestDeclare' and associate the 'myWebRequest' to it.
         RequestDeclare^ requestDeclare = gcnew RequestDeclare;
         requestDeclare->myFileWebRequest = dynamic_cast<FileWebRequest^>(myWebRequest);
         
         // Set the 'Method' property of 'FileWebRequest' Object* to 'POST' method.
         requestDeclare->myFileWebRequest->Method = "POST";
         Console::WriteLine( "Enter the String* you want to write into the file:" );
         requestDeclare->userinput = Console::ReadLine();
         
         // Begin the Asynchronous request for getting file content using 'BeginGetRequestStream()' method .
         IAsyncResult^ r = dynamic_cast<IAsyncResult^>(requestDeclare->myFileWebRequest->BeginGetRequestStream( gcnew AsyncCallback( &FileWebRequest_reqbeginend::ReadCallback ), requestDeclare ));
         FileWebRequest_reqbeginend::allDone->WaitOne();
         Console::Read();
      }
      catch ( ProtocolViolationException^ e ) 
      {
         Console::WriteLine( "ProtocolViolationException is : {0}", e->Message );
      }
      catch ( InvalidOperationException^ e ) 
      {
         Console::WriteLine( "InvalidOperationException is : {0}", e->Message );
      }
      catch ( UriFormatException^ e ) 
      {
         Console::WriteLine( "UriFormatExceptionException is : {0}", e->Message );
      }

   }
}
    public FileWebRequest myFileWebRequest;
    public String userInput;

    public RequestDeclare()
    {
        myFileWebRequest = null;
    } //RequestDeclare
} //RequestDeclare

class FileWebRequestReqBeginEnd
{
    public static ManualResetEvent allDone = new ManualResetEvent(false);

    public static void main(String[] args)
    {
        if (args.length < 1) {
            Console.WriteLine("\nPlease enter the file name as command " 
                + " line parameter:");
            Console.WriteLine("Usage:FileWebRequest_reqbeginend <systemname>" 
                + "/<sharedfoldername>/<filename>\nExample:" 
                + "FileWebRequest_reqbeginend shafeeque/shaf/hello.txt");
        }
        else {
            try {
                // Place a webrequest.
                WebRequest myWebRequest = WebRequest.Create("file://" 
                    + args[0]);

                // Create an instance of the 'RequestDeclare' and associate
                // the 'myWebRequest' to it.        
                RequestDeclare requestDeclare = new RequestDeclare();
                requestDeclare.myFileWebRequest = 
                    (FileWebRequest)(myWebRequest);

                // Set the 'Method' property of 'FileWebRequest' object to
                // 'POST' method.
                requestDeclare.myFileWebRequest.set_Method("POST");
                Console.WriteLine("Enter the string you want to write into " 
                    + " the file:");
                requestDeclare.userInput = Console.ReadLine();

                // Begin the Asynchronous request for getting file content
                // using 'BeginGetRequestStream()' method .
                IAsyncResult r = (IAsyncResult)(requestDeclare.
                    myFileWebRequest.BeginGetRequestStream(new AsyncCallback(
                    ReadCallback), requestDeclare));
                allDone.WaitOne();
                Console.Read();
            }
            catch (ProtocolViolationException e) {
                Console.WriteLine("ProtocolViolationException is :" 
                    + e.get_Message());
            }
            catch (InvalidOperationException e) {
                Console.WriteLine("InvalidOperationException is :" 
                    + e.get_Message());
            }
            catch (UriFormatException e) {
                Console.WriteLine("UriFormatExceptionException is :" 
                    + e.get_Message());
            }
        }
    } //main

    private static void ReadCallback(IAsyncResult ar)
    {
        try {
            // State of the request is asynchronous.
            RequestDeclare requestDeclare = (RequestDeclare)(
                ar.get_AsyncState());
            FileWebRequest myFileWebRequest = requestDeclare.myFileWebRequest;
            String sendToFile = requestDeclare.userInput;

            // End the Asynchronus request by calling the
            // 'EndGetRequestStream()' method.
            Stream readStream = myFileWebRequest.EndGetRequestStream(ar);

            // Convert the string into byte array.
            ASCIIEncoding encoder = new ASCIIEncoding();
            ubyte byteArray[] = encoder.GetBytes(sendToFile);

            // Write to the stream.
            readStream.Write(byteArray, 0, sendToFile.get_Length());
            readStream.Close();
            allDone.Set();
            Console.WriteLine("\nThe String you entered was successfully " 
                + "written into the file.");
            Console.WriteLine("\nPress Enter to continue.");
        }
        catch (ApplicationException e) {
            Console.WriteLine("ApplicationException is :" + e.get_Message());
        }
    } //ReadCallback

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

FileWebRequest-Klasse
FileWebRequest-Member
System.Net-Namespace
GetRequestStream
EndGetRequestStream

Weitere Ressourcen

Verwenden von asynchronen Anforderungen