2009-08-20 9 views
3

私たちはRESTのようなサービスセットを作成しており、エラーを別のStatusCodeとして返しています。例外をスローする前にWebClientのStatusCodeに応答するにはどうすればいいですか

私たちのクライアントアプリケーションでは、ワークフローでエラーコードを検出するための例外をキャッチしてキャストする必要がない場合は、

WebClientまたはHttpWebRequestに200以外のStatusCodeが発生したときに例外をスローするように指示する方法はありますか?

答えて

2

いいえ。設計では、200または201以外のものは例外的です。

HttpStatusCode httpStatusCode; 
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://example.org/resource"); 
try 
{ 
    using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse()) 
    { 
     // handle 200/201 case 
    } 
} 
catch (WebException webException) 
{ 
    if (webException.Response != null) 
    { 
     HttpWebResponse httpWebExceptionResponse = (HttpWebResponse)webException.Response; 
     switch (httpWebExceptionResponse.StatusCode) 
     { 
      case 304: // HttpStatusCode.NotModified 
       break; 
      case 410: // HttpStatusCode.Gone 
       break; 
      case 500: // HttpStatusCode.InternalServerError 
       break; 
      // etc 
     } 
    } 
    else 
    { 
     //did not contact host. Invalid host name? 
    } 
} 
return httpStatusCode; 
関連する問題