次の方法で共有


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.GetResponseStatus プロパティを WebExceptionStatus.ProtocolError に設定し、エラー メッセージを格納した WebResponse をスローされた WebExceptionResponse プロパティに提供します。アプリケーションは 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

参照

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