HttpWebRequest.GetResponse メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
インターネット リソースからの応答を返します。
public:
override System::Net::WebResponse ^ GetResponse();
public override System.Net.WebResponse GetResponse ();
override this.GetResponse : unit -> System.Net.WebResponse
Public Overrides Function GetResponse () As WebResponse
戻り値
インターネット リソースからの応答を含む WebResponse。
例外
ストリームは、BeginGetResponse(AsyncCallback, Object)の以前の呼び出しによって既に使用されています。
-又は-
TransferEncoding は値に設定され、SendChunked は false
。
Method は GET または HEAD で、ContentLength が 0 以上であるか、SendChunked が true
。
-又は-
KeepAlive が true
、AllowWriteStreamBuffering が false
、ContentLength が -1、SendChunked が false
、Method が POST または PUT です。
-又は-
HttpWebRequest にはエンティティ本体がありますが、GetRequestStream() メソッドを呼び出さずに GetResponse() メソッドが呼び出されます。
-又は-
ContentLength は 0 より大きくなりますが、アプリケーションは約束されたすべてのデータを書き込むわけではありません。
要求キャッシュ検証コントロールは、この要求の応答をキャッシュから提供できることを示しました。ただし、この要求には、サーバーに送信されるデータが含まれます。 データを送信する要求では、キャッシュを使用しないでください。 この例外は、正しく実装されていないカスタム キャッシュ検証コントロールを使用している場合に発生する可能性があります。
例
次のコード例では、要求の応答を取得します。
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::Text;
using namespace System::IO;
// Specify the URL to receive the request.
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create(args[1]));
// Set some reasonable limits on resources used by this request
request->MaximumAutomaticRedirections = 4;
request->MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request->Credentials = CredentialCache::DefaultCredentials;
HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
Console::WriteLine("Content length is {0}", response->ContentLength);
Console::WriteLine("Content type is {0}", response->ContentType);
// Get the stream associated with the response.
Stream^ receiveStream = response->GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader^ readStream = gcnew StreamReader(receiveStream, Encoding::UTF8);
Console::WriteLine("Response stream received.");
Console::WriteLine(readStream->ReadToEnd());
response->Close();
readStream->Close();
}
/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:
Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>
*/
using System;
using System.Net;
using System.Text;
using System.IO;
public class Test
{
// Specify the URL to receive the request.
public static void Main (string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);
// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine("Content length is {0}", response.ContentLength);
Console.WriteLine("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
Console.WriteLine("Response stream received.");
Console.WriteLine(readStream.ReadToEnd());
response.Close();
readStream.Close();
}
}
/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:
Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>
*/
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Test
' Specify the URL to receive the request.
Public Shared Sub Main(ByVal args() As String)
Dim request As HttpWebRequest = CType(WebRequest.Create(args(0)), HttpWebRequest)
' Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4
request.MaximumResponseHeadersLength = 4
' Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Console.WriteLine("Content length is {0}", response.ContentLength)
Console.WriteLine("Content type is {0}", response.ContentType)
' Get the stream associated with the response.
Dim receiveStream As Stream = response.GetResponseStream()
' Pipes the stream to a higher level stream reader with the required encoding format.
Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)
Console.WriteLine("Response stream received.")
Console.WriteLine(readStream.ReadToEnd())
response.Close()
readStream.Close()
End Sub
End Class
'
'The output from this example will vary depending on the value passed into Main
'but will be similar to the following:
'
'Content length is 1542
'Content type is text/html; charset=utf-8
'Response stream received.
'...
'
'
注釈
注意
WebRequest
、HttpWebRequest
、ServicePoint
、WebClient
は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。
GetResponse メソッドは、インターネット リソースからの応答を含む WebResponse オブジェクトを返します。 返される実際のインスタンスは HttpWebResponseであり、そのクラスに型キャストして HTTP 固有のプロパティにアクセスできます。
ProtocolViolationException は、HttpWebRequest クラスに設定されたプロパティが競合している場合にスローされる場合があります。 この例外は、アプリケーションが ContentLength プロパティと SendChunked プロパティを true
に設定し、HTTP GET 要求を送信した場合に発生します。 この例外は、アプリケーションが HTTP 1.0 プロトコルのみをサポートするサーバーにチャンクを送信しようとした場合に発生します。このプロトコルはサポートされていません。 この例外は、アプリケーションが ContentLength プロパティを設定せずにデータを送信しようとした場合、またはバッファリングが無効でキープアライブ接続 (KeepAlive プロパティが true
) に false
SendChunked.
注意
ストリームを閉じて接続を解放するには、Close メソッドを呼び出す必要があります。 これを行わないと、アプリケーションが接続を使い果たしてしまう可能性があります。
POST メソッドを使用する場合は、要求ストリームを取得し、投稿するデータを書き込み、ストリームを閉じる必要があります。 このメソッドは、コンテンツが投稿されるのを待つのをブロックします。タイムアウト セットがなく、コンテンツを指定しない場合、呼び出し元のスレッドは無期限にブロックされます。
手記
同じ応答オブジェクト GetResponse 返す複数の呼び出し。要求は再発行されません。
手記
アプリケーションは、特定の要求に対して同期メソッドと非同期メソッドを混在させることができません。 GetRequestStream メソッドを呼び出す場合は、GetResponse メソッドを使用して応答を取得する必要があります。
手記
WebException がスローされた場合は、例外の Response プロパティと Status プロパティを使用して、サーバーからの応答を確認します。
手記
このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「.NET Frameworkでのネットワーク トレースの
手記
セキュリティ上の理由から、Cookie は既定で無効になっています。 Cookie を使用する場合は、CookieContainer プロパティを使用して Cookie を有効にします。
適用対象
こちらもご覧ください
.NET