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