Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
EndGetResponse Method

HttpWebRequest.EndGetResponse Method

Ends an asynchronous request to an Internet resource.

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

public override WebResponse EndGetResponse (
	IAsyncResult asyncResult
)
public WebResponse EndGetResponse (
	IAsyncResult asyncResult
)
public override function EndGetResponse (
	asyncResult : IAsyncResult
) : WebResponse

Parameters

asyncResult

The pending request for a response.

Return Value

A WebResponse that contains the response from the Internet resource.

Exception typeCondition

ArgumentNullException

asyncResult is a null reference (Nothing in Visual Basic).

InvalidOperationException

This method was called previously using asyncResult.

-or-

The ContentLength property is greater than 0 but the data has not been written to the request stream.

WebException

Abort was previously called.

-or-

An error occurred while processing the request.

ArgumentException

asyncResult was not returned by the current instance from a call to BeginGetResponse.

The EndGetResponse method completes an asynchronous request for an Internet resource that was started by calling the BeginGetResponse method.

Caution noteCaution

You must call the Close method to close the stream and release the connection. Failure to do so may cause your application to run out of connections.

NoteNote

This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing.

The following code example uses the EndGetResponse method to end an asynchronous request for an Internet resource.

  try
  {      

    
    // Create a HttpWebrequest object to the desired URL.
    HttpWebRequest myHttpWebRequest1= (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
    
    // Create an instance of the RequestState and assign the previous myHttpWebRequest1
    // object to it's request field.  
    RequestState myRequestState = new RequestState();  
    myRequestState.request = myHttpWebRequest1;


    // Start the asynchronous request.
    IAsyncResult result=
      (IAsyncResult) myHttpWebRequest1.BeginGetResponse(new AsyncCallback(RespCallback),myRequestState);

    allDone.WaitOne();
    
    // Release the HttpWebResponse resource.
    myRequestState.response.Close();
  }
  catch(WebException e)
  {
    Console.WriteLine("\nException raised!");
    Console.WriteLine("\nMessage:{0}",e.Message);
    Console.WriteLine("\nStatus:{0}",e.Status);
    Console.WriteLine("Press any key to continue..........");
  }
  catch(Exception e)
  {
    Console.WriteLine("\nException raised!");
    Console.WriteLine("Source :{0} " , e.Source);
    Console.WriteLine("Message :{0} " , e.Message);
    Console.WriteLine("Press any key to continue..........");
    Console.Read();
  }
}
private static void RespCallback(IAsyncResult asynchronousResult)
{  
  try
  {
    // State of request is asynchronous.
    RequestState myRequestState=(RequestState) asynchronousResult.AsyncState;
    HttpWebRequest  myHttpWebRequest2=myRequestState.request;
    myRequestState.response = (HttpWebResponse) myHttpWebRequest2.EndGetResponse(asynchronousResult);
    
    // Read the response into a Stream object.
    Stream responseStream = myRequestState.response.GetResponseStream();
    myRequestState.streamResponse=responseStream;
    
    // Begin the Reading of the contents of the HTML page and print it to the console.
    IAsyncResult asynchronousInputRead = responseStream.BeginRead(myRequestState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), myRequestState);
  }
  catch(WebException e)
  {
    Console.WriteLine("\nException raised!");
    Console.WriteLine("\nMessage:{0}",e.Message);
    Console.WriteLine("\nStatus:{0}",e.Status);
    
  }
}
private static  void ReadCallBack(IAsyncResult asyncResult)
{
  try
  {

  RequestState myRequestState = (RequestState)asyncResult.AsyncState;
  Stream responseStream = myRequestState.streamResponse;
  int read = responseStream.EndRead( asyncResult );
  // Read the HTML page and then print it to the console.
  if (read > 0)
  {
    myRequestState.requestData.Append(Encoding.ASCII.GetString(myRequestState.BufferRead, 0, read));
    IAsyncResult asynchronousResult = responseStream.BeginRead( myRequestState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallBack), myRequestState);
  }
  else
  {
    Console.WriteLine("\nThe contents of the Html page are : ");
    if(myRequestState.requestData.Length>1)
    {
      string stringContent;
      stringContent = myRequestState.requestData.ToString();
      Console.WriteLine(stringContent);
    }
    Console.WriteLine("Press any key to continue..........");
    Console.ReadLine();
    
    responseStream.Close();
    allDone.Set();
   
  }

  }
  catch(WebException e)
  {
    Console.WriteLine("\nException raised!");
    Console.WriteLine("\nMessage:{0}",e.Message);
    Console.WriteLine("\nStatus:{0}",e.Status);
    
  }

}

        try {
            // Create a HttpWebrequest object to the desired URL.
            HttpWebRequest myHttpWebRequest1 = ((HttpWebRequest)
                (WebRequest.Create("http://www.contoso.com")));
            // Create an instance of the RequestState and assign the 
            //previous myHttpWebRequest1
            // object to it's request field.  
            RequestState myRequestState = new RequestState();
            myRequestState.request = myHttpWebRequest1;
            // Start the asynchronous request.
            IAsyncResult result = (IAsyncResult)
                (myHttpWebRequest1.BeginGetResponse(new 
                AsyncCallback(RespCallback), myRequestState));
            allDone.WaitOne();
            // Release the HttpWebResponse resource.
            myRequestState.response.Close();
        }
        catch (WebException e) {
            Console.WriteLine("\nException raised!");
            Console.WriteLine("\nMessage:{0}", e.get_Message());
            Console.WriteLine("\nStatus:{0}", e.get_Status());
            Console.WriteLine("Press any key to continue..........");
        }
        catch (System.Exception e) {
            Console.WriteLine("\nException raised!");
            Console.WriteLine("Source :{0} ", e.get_Source());
            Console.WriteLine("Message :{0} ", e.get_Message());
            Console.WriteLine("Press any key to continue..........");
            Console.Read();
        }
    } //main

    private static void RespCallback(IAsyncResult asynchronousResult)
    {
        try {
            // State of request is asynchronous.
            RequestState myRequestState = (RequestState)
                (asynchronousResult.get_AsyncState());
            HttpWebRequest myHttpWebRequest2 = myRequestState.request;

            myRequestState.response = (HttpWebResponse)(myHttpWebRequest2.
                EndGetResponse(asynchronousResult));
            // Read the response into a Stream object.
            Stream responseStream = myRequestState.response.GetResponseStream();
            myRequestState.streamResponse = responseStream;

            // Begin the Reading of the contents of the HTML page and print
            // it to the console.
            IAsyncResult asynchronousInputRead = responseStream.BeginRead
                (myRequestState.bufferRead, 0, BUFFER_SIZE, 
                new AsyncCallback(ReadCallBack), myRequestState);
        }
        catch (WebException e) {
            Console.WriteLine("\nException raised!");
            Console.WriteLine("\nMessage:{0}", e.get_Message());
            Console.WriteLine("\nStatus:{0}", e.get_Status());
        }
    } //RespCallback

    private static void ReadCallBack(IAsyncResult asyncResult)
    {
        try {
            RequestState myRequestState = (RequestState)
                (asyncResult.get_AsyncState());
            Stream responseStream = myRequestState.streamResponse;
            int read = responseStream.EndRead(asyncResult);

            // Read the HTML page and then print it to the console.
            if (read > 0) {
                myRequestState.requestData.Append(Encoding.get_ASCII().
                    GetString(myRequestState.bufferRead, 0, read));
                IAsyncResult asynchronousResult = responseStream.BeginRead
                    (myRequestState.bufferRead, 0, BUFFER_SIZE, new 
                    AsyncCallback(ReadCallBack), myRequestState);
            }
            else {
                Console.WriteLine("\nThe contents of the Html page are : ");

                if (myRequestState.requestData.get_Length() > 1) {
                    String stringContent;
                    stringContent = myRequestState.requestData.ToString();
                    Console.WriteLine(stringContent);
                }
                Console.WriteLine("Press any key to continue..........");
                Console.ReadLine();
                responseStream.Close();
                allDone.Set();
            }
        }
        catch (WebException e) {
            Console.WriteLine("\nException raised!");
            Console.WriteLine("\nMessage:{0}", e.get_Message());
            Console.WriteLine("\nStatus:{0}", e.get_Status());
        }
    } //ReadCallBack
} //HttpWebRequest_BeginGetResponse

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show:
© 2015 Microsoft