Export (0) Print
Expand All

HttpWebResponse.GetResponseStream Method

Gets the stream used to read the body of the response from the server.

[Visual Basic]
Overrides Public Function GetResponseStream() As Stream
[C#]
public override Stream GetResponseStream();
[C++]
public: Stream* GetResponseStream();
[JScript]
public override function GetResponseStream() : Stream;

Return Value

A Stream containing the body of the response.

Exceptions

Exception Type Condition
ProtocolViolationException There is no response stream.
ObjectDisposedException The current instance has been disposed.

Remarks

The GetResponseStream method returns the data stream from the requested Internet resource.

Note   You must call either the Stream.Close or HttpWebResponse.Close method to close the stream and release the connection for reuse. It is not necessary to call both Stream.Close and HttpWebResponse.Close, but doing so does not cause an error. Failure to close the stream will cause your application to run out of connections.

Example

[Visual Basic, C#, C++] The following example demonstrates how to use GetResponseStream to return the Stream instance used to read the response from the server.

[Visual Basic] 
' Creates an HttpWebRequest for the specified URL. 
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
' Sends the request and waits for a response.            
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
' Calls the method GetResponseStream to return the stream associated with the response.
Dim receiveStream As Stream = myHttpWebResponse.GetResponseStream()
Dim encode As Encoding = System.Text.Encoding.GetEncoding("utf-8")
' Pipes the response stream to a higher level stream reader with the required encoding format. 
Dim readStream As New StreamReader(receiveStream, encode)
Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "Response stream received")
Dim read(256) As [Char]
' Reads 256 characters at a time.    
Dim count As Integer = readStream.Read(read, 0, 256)
Console.WriteLine("HTML..." + ControlChars.Lf + ControlChars.Cr)
While count > 0
    ' Dumps the 256 characters to a string and displays the string to the console.
    Dim str As New [String](read, 0, count)
    Console.Write(str)
    count = readStream.Read(read, 0, 256)
End While
Console.WriteLine("")
' Releases the resources of the Stream.
readStream.Close()
 ' Releases the resources of the response.
myHttpWebResponse.Close()

[C#] 
// Creates an HttpWebRequest with the specified URL. 
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
    // Sends the HttpWebRequest and waits for the response.            
    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
    // Gets the stream associated with the response.
    Stream receiveStream = myHttpWebResponse.GetResponseStream();
    Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    // Pipes the stream to a higher level stream reader with the required encoding format. 
    StreamReader readStream = new StreamReader( receiveStream, encode );
Console.WriteLine("\r\nResponse stream received.");
    Char[] read = new Char[256];
    // Reads 256 characters at a time.    
    int count = readStream.Read( read, 0, 256 );
    Console.WriteLine("HTML...\r\n");
    while (count > 0) 
        {
            // Dumps the 256 characters on a string and displays the string to the console.
            String str = new String(read, 0, count);
            Console.Write(str);
            count = readStream.Read(read, 0, 256);
        }
    Console.WriteLine("");
    // Releases the resources of the response.
    myHttpWebResponse.Close();
    // Releases the resources of the Stream.
    readStream.Close();

[C++] 
// Creates an HttpWebRequest with the specified URL.
HttpWebRequest* myHttpWebRequest =
   dynamic_cast<HttpWebRequest*>(WebRequest::Create(url));
// Sends the HttpWebRequest and waits for the response.
HttpWebResponse* myHttpWebResponse =
   dynamic_cast<HttpWebResponse*>(myHttpWebRequest->GetResponse());
// Gets the stream associated with the response.
Stream* receiveStream = myHttpWebResponse->GetResponseStream();
Encoding* encode = System::Text::Encoding::GetEncoding(S"utf-8");
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader* readStream = new StreamReader(receiveStream, encode);
Console::WriteLine(S"\r\nResponse stream received.");
Char read[] = new Char[256];
// Reads 256 characters at a time.
int count = readStream->Read(read, 0, 256);
Console::WriteLine(S"HTML...\r\n");
while (count > 0) {
   // Dumps the 256 characters on a String* and displays the String* to the console.
   String* str = new String(read, 0, count);
   Console::Write(str);
   count = readStream->Read(read, 0, 256);
}
Console::WriteLine(S"");
// Releases the resources of the response.
myHttpWebResponse->Close();
// Releases the resources of the Stream.
readStream->Close();

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter 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, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

See Also

HttpWebResponse Class | HttpWebResponse Members | System.Net Namespace

Show:
© 2014 Microsoft