FileWebRequest.BeginGetResponse Method
Begins an asynchronous request for a file system resource.
[Visual Basic] Overrides Public Function BeginGetResponse( _ ByVal callback As AsyncCallback, _ ByVal state As Object _ ) As IAsyncResult [C#] public override IAsyncResult BeginGetResponse( AsyncCallback callback, object state ); [C++] public: IAsyncResult* BeginGetResponse( AsyncCallback* callback, Object* state ); [JScript] public override function BeginGetResponse( callback : AsyncCallback, state : Object ) : IAsyncResult;
Parameters
- callback
- The AsyncCallback delegate.
- state
- An object containing state information for this request.
Return Value
An IAsyncResult that references the asynchronous request.
Exceptions
| Exception Type | Condition |
|---|---|
| InvalidOperationException | The stream is already in use by a previous call to BeginGetResponse. |
Remarks
The BeginGetResponse method starts an asynchronous request for a file system resource. The asynchronous callback method that implements the AsyncCallback delegate uses the EndGetResponse method to return the actual FileWebResponse.
Example
[Visual Basic, C#, C++] The following example uses the BeginGetResponse method to asynchronously a file system resource.
[Visual Basic] Public Class RequestDeclare Public myFileWebRequest As FileWebRequest Public Sub New() myFileWebRequest = Nothing End Sub ' New End Class ' RequestDeclare Class FileWebRequest_resbeginend Public Shared allDone As New ManualResetEvent(False) ' Entry point which delegates to C-style main Private Function. Public Overloads Shared Sub Main() Main(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_resbeginend " + ChrW(60) + "systemname" + ChrW(62) + "/" + ChrW(60) + "sharedfoldername" + ChrW(62) + "/" + ChrW(60) + "filename" + ChrW(62) + ControlChars.Cr + "Example:FileWebRequest_resbeginend 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 associating the 'myWebRequest' to it. Dim myRequestDeclare As New RequestDeclare() myRequestDeclare.myFileWebRequest = CType(myWebRequest, FileWebRequest) ' Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method. Dim asyncResult As IAsyncResult = CType(myRequestDeclare.myFileWebRequest.BeginGetResponse(AddressOf RespCallback, myRequestDeclare), IAsyncResult) allDone.WaitOne() Catch e As ArgumentNullException Console.WriteLine(("ArgumentNullException is :" + e.Message)) Catch e As UriFormatException Console.WriteLine(("UriFormatException is :" + e.Message)) End Try End If End Sub ' Main Private Shared Sub RespCallback(ar As IAsyncResult) ' State of request is asynchronous. Dim requestDeclare As RequestDeclare = CType(ar.AsyncState, RequestDeclare) Dim myFileWebRequest As FileWebRequest = requestDeclare.myFileWebRequest ' End the Asynchronus request by calling the 'EndGetResponse()' method. Dim myFileWebResponse As FileWebResponse = CType(myFileWebRequest.EndGetResponse(ar), FileWebResponse) ' Reade the response into Stream. Dim streamReader As New StreamReader(myFileWebResponse.GetResponseStream()) Dim readBuffer(256) As [Char] Dim count As Integer = streamReader.Read(readBuffer, 0, 256) Console.WriteLine("The contents of the file are :"+ControlChars.Cr) While count > 0 Dim str As New [String](readBuffer, 0, count) Console.WriteLine(str) count = streamReader.Read(readBuffer, 0, 256) End While streamReader.Close() ' Release the response object resources. myFileWebResponse.Close() allDone.Set() Console.WriteLine("File reading is over.") End Sub ' RespCallback End Class ' FileWebRequest_resbeginend [C#] public class RequestDeclare { public FileWebRequest myFileWebRequest; public RequestDeclare() { myFileWebRequest = null; } } class FileWebRequest_resbeginend { 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_resbeginend <systemname>/<sharedfoldername>/<filename>\nExample:FileWebRequest_resbeginend shafeeque/shaf/hello.txt"); } else { try { // Place a 'Webrequest'. WebRequest myWebRequest= WebRequest.Create("file://"+args[0]); // Create an instance of the 'RequestDeclare' and associating the 'myWebRequest' to it. RequestDeclare myRequestDeclare = new RequestDeclare(); myRequestDeclare.myFileWebRequest = (FileWebRequest)myWebRequest; // Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method. IAsyncResult asyncResult =(IAsyncResult) myRequestDeclare.myFileWebRequest.BeginGetResponse(new AsyncCallback(RespCallback),myRequestDeclare); allDone.WaitOne(); } catch(ArgumentNullException e) { Console.WriteLine("ArgumentNullException is :"+e.Message); } catch(UriFormatException e) { Console.WriteLine("UriFormatException is :"+e.Message); } } } private static void RespCallback(IAsyncResult ar) { // State of request is asynchronous. RequestDeclare requestDeclare=(RequestDeclare) ar.AsyncState; FileWebRequest myFileWebRequest=requestDeclare.myFileWebRequest; // End the Asynchronus request by calling the 'EndGetResponse()' method. FileWebResponse myFileWebResponse = (FileWebResponse) myFileWebRequest.EndGetResponse(ar); // Reade the response into Stream. StreamReader streamReader= new StreamReader(myFileWebResponse.GetResponseStream()); Char[] readBuffer = new Char[256]; int count = streamReader.Read( readBuffer, 0, 256 ); Console.WriteLine("The contents of the file are :\n"); while (count > 0) { String str = new String(readBuffer, 0, count); Console.WriteLine(str); count = streamReader.Read(readBuffer, 0, 256); } streamReader.Close(); // Release the response object resources. myFileWebResponse.Close(); allDone.Set(); Console.WriteLine("File reading is over."); } } [C++] public __gc class RequestDeclare { public: FileWebRequest* myFileWebRequest; RequestDeclare() { myFileWebRequest = 0; } }; __gc class FileWebRequest_resbeginend { public: static ManualResetEvent* allDone = new ManualResetEvent(false); static void RespCallback(IAsyncResult* ar) { // State of request is asynchronous. RequestDeclare* requestDeclare = dynamic_cast<RequestDeclare*>(ar->AsyncState); FileWebRequest* myFileWebRequest=requestDeclare->myFileWebRequest; // End the Asynchronus request by calling the 'EndGetResponse()' method. FileWebResponse* myFileWebResponse = dynamic_cast<FileWebResponse*> (myFileWebRequest->EndGetResponse(ar)); // Reade the response into Stream. StreamReader* streamReader = new StreamReader(myFileWebResponse->GetResponseStream()); Char readBuffer[] = new Char[256]; int count = streamReader->Read(readBuffer, 0, 256); Console::WriteLine(S"The contents of the file are :\n"); while (count > 0) { String* str = new String(readBuffer, 0, count); Console::WriteLine(str); count = streamReader->Read(readBuffer, 0, 256); } streamReader->Close(); // Release the response Object* resources. myFileWebResponse->Close(); allDone->Set(); Console::WriteLine(S"File reading is over."); } }; int main() { String* args[] = Environment::GetCommandLineArgs(); if (args->Length < 2) { Console::WriteLine(S"\nPlease enter the file name as command line parameter:"); Console::WriteLine(S"Usage:FileWebRequest_resbeginend <systemname>/<sharedfoldername>/<filename>\n"); Console::WriteLine(S"Example:FileWebRequest_resbeginend shafeeque/shaf/hello.txt"); } else { try { // Place a 'Webrequest'. WebRequest* myWebRequest= WebRequest::Create(String::Concat(S"file://", args[1])); // Create an instance of the 'RequestDeclare' and associating the 'myWebRequest' to it. RequestDeclare* myRequestDeclare = new RequestDeclare(); myRequestDeclare->myFileWebRequest = dynamic_cast<FileWebRequest*>(myWebRequest); // Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method. IAsyncResult* asyncResult = dynamic_cast<IAsyncResult*> (myRequestDeclare->myFileWebRequest->BeginGetResponse(new AsyncCallback(0, &FileWebRequest_resbeginend::RespCallback), myRequestDeclare)); FileWebRequest_resbeginend::allDone->WaitOne(); } catch (ArgumentNullException* e) { Console::WriteLine(S"ArgumentNullException is : {0}", e->Message); } catch (UriFormatException* e) { Console::WriteLine(S"UriFormatException is : {0}", e->Message); } } }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also
FileWebRequest Class | FileWebRequest Members | System.Net Namespace | GetResponse | EndGetResponse | Making Asynchronous Requests