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.Close と HttpWebResponse.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