FileWebRequest.EndGetResponse Method (IAsyncResult)

 

Ends an asynchronous request for a file system resource.

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

public override WebResponse EndGetResponse(
	IAsyncResult asyncResult
)

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 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.");	
	}

}

.NET Framework
Available since 1.1
Return to top
Show: