WebException.Response プロパティ
リモート ホストが返す応答を取得します。
Public ReadOnly Property Response As WebResponse
[C#]
public WebResponse Response {get;}
[C++]
public: __property WebResponse* get_Response();
[JScript]
public function get Response() : WebResponse;
プロパティ値
インターネット リソースから応答がある場合は、インターネット リソースからのエラー応答を格納した WebResponse インスタンス。それ以外の場合は null 参照 (Visual Basic では Nothing) 。
解説
HTTP などの一部のインターネット プロトコルは、エラーがプロトコル レベルで発生したことを示すその他の有効な応答を返します。インターネット要求への応答がエラーを示している場合、 WebRequest.GetResponse は Status プロパティを WebExceptionStatus.ProtocolError に設定し、エラー メッセージを格納した WebResponse をスローされた WebException の Response プロパティに提供します。アプリケーションは WebResponse を調べ、実際のエラーを判断できます。
使用例
[Visual Basic, C#, C++] Status プロパティをチェックし、元になる HttpWebResponse インスタンスの StatusCode および StatusDescription をコンソールに出力する例を次に示します。
Try
'Create a web request for an invalid site. Substitute the "invalid site" strong in the Create call with a invalid name.
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create("invalid site"), HttpWebRequest)
'Get the associated response for the above request.
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
myHttpWebResponse.Close()
Catch e As WebException
Console.WriteLine(e.Message)
If e.Status = WebExceptionStatus.ProtocolError Then
Console.WriteLine("Status Code : {0}", CType(e.Response, HttpWebResponse).StatusCode)
Console.WriteLine("Status Description : {0}", CType(e.Response, HttpWebResponse).StatusDescription)
End If
[C#]
try {
// Create a web request for an invalid site. Substitute the "invalid site" strong in the Create call with a invalid name.
HttpWebRequest myHttpWebRequest = (HttpWebRequest) WebRequest.Create("invalid site");
// Get the associated response for the above request.
HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse();
myHttpWebResponse.Close();
}
catch(WebException e) {
Console.WriteLine("This program is expected to throw WebException on successful run."+
"\n\nException Message :" + e.Message);
if(e.Status == WebExceptionStatus.ProtocolError) {
Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
}
[C++]
try {
// Create a web request for an unknown server (this raises the WebException).
HttpWebRequest* myHttpWebRequest =
dynamic_cast<HttpWebRequest*> (WebRequest::Create(S"http://unknown.unknown.com"));
// Get the associated response for the above request.
HttpWebResponse* myHttpWebResponse =
dynamic_cast<HttpWebResponse*> (myHttpWebRequest->GetResponse());
myHttpWebResponse->Close();
} catch (WebException* e) {
Console::WriteLine(S"This program is expected to throw WebException on successful run. \n\nException Message : {0}", e->Message);
if (e->Status == WebExceptionStatus::ProtocolError) {
Console::WriteLine(S"Status Code : {0}", __box((dynamic_cast<HttpWebResponse*>(e->Response))->StatusCode));
Console::WriteLine(S"Status Description : {0}",
(dynamic_cast<HttpWebResponse*>(e->Response))->StatusDescription);
}
[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