次の方法で共有


HttpWebResponse.GetResponseStream メソッド

サーバーから応答の本文を読み取るために使用するストリームを取得します。

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

戻り値

応答の本文を格納している Stream

例外

例外の種類 条件
ProtocolViolationException 応答ストリームがありません。
ObjectDisposedException 現在のインスタンスは破棄されています。

解説

GetResponseStream メソッドは、要求したインターネット リソースからデータ ストリームを返します。

メモ   ストリームを閉じて、再使用のための接続を解放するために Stream.Close メソッドまたは HttpWebResponse.Close メソッドを呼び出す必要があります。 Stream.CloseHttpWebResponse.Close の両方を呼び出す必要はありません。ただし、両方呼び出してもエラーは発生しません。ストリームを閉じないと、アプリケーションで接続が不足することがあります。

使用例

[Visual Basic, C#, C++] GetResponseStream を使用して、サーバーから応答を読み取るための Stream インスタンスを返す方法の例を次に示します。

 
' 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] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

HttpWebResponse クラス | HttpWebResponse メンバ | System.Net 名前空間