FileWebRequest::EndGetResponse Method (IAsyncResult^)
.NET Framework (current version)
Ends an asynchronous request for a file system resource.
Assembly: System (in System.dll)
Parameters
- asyncResult
-
Type:
System::IAsyncResult^
An IAsyncResult that references the pending request for a response.
Return Value
Type: System.Net::WebResponse^A WebResponse that contains the response from the file system resource.
| Exception | Condition |
|---|---|
| ArgumentNullException | asyncResult is null. |
The EndGetResponse method completes an asynchronous request for a file system resource that was started with the BeginGetResponse method.
The following code example uses the EndGetResponse method to end an asynchronous request for a file system resource.
public ref class RequestDeclare { public: FileWebRequest^ myFileWebRequest; RequestDeclare() { myFileWebRequest = nullptr; } }; ref class FileWebRequest_resbeginend { public: static ManualResetEvent^ allDone = gcnew 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 = gcnew StreamReader( myFileWebResponse->GetResponseStream() ); array<Char>^readBuffer = gcnew array<Char>(256); int count = streamReader->Read( readBuffer, 0, 256 ); Console::WriteLine( "The contents of the file are :\n" ); while ( count > 0 ) { String^ str = gcnew 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." ); } }; 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_resbeginend <systemname>/<sharedfoldername>/<filename>\n" ); Console::WriteLine( "Example:FileWebRequest_resbeginend 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 associating the 'myWebRequest' to it. RequestDeclare^ myRequestDeclare = gcnew 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( gcnew AsyncCallback( &FileWebRequest_resbeginend::RespCallback ), myRequestDeclare )); FileWebRequest_resbeginend::allDone->WaitOne(); } catch ( ArgumentNullException^ e ) { Console::WriteLine( "ArgumentNullException is : {0}", e->Message ); } catch ( UriFormatException^ e ) { Console::WriteLine( "UriFormatException is : {0}", e->Message ); } } }
.NET Framework
Available since 1.1
Available since 1.1
Show: