2016-12-27 11 views
1

RESTクライアントを使用してPUTリクエストに問題があります。私はPostmanでも同じことを試みましたが、適切なエラーメッセージを返してErrorResponseを返します。だから私はC# - RestSharp Requestコールで同じことを期待していました。代わりに、私は500内部サーバーエラー、request.ErrorException = nullとrequest.ErrorMessage = nullも取得します。誰かがRequestヘッダーを私に告発する前に、私はrequest.AddHeader( "Accept"、 "application/json")を設定しました。RestClient - リクエストが500の内部サーバーエラー(HTMLとしてのコンテンツ)を返し、ErrorMessageを返しません。

私のコードは私の中で今のこの

var client = new RestClient(uri); 
var request = new RestRequest(Method.PUT); 
request.AddHeader("Accept", "application/json");` 
request.AddParameter("xx...", value); 
var response = client.Execute(request); 
var content = response.Content; 

のようなものだから今、私は見response.Contentは以下のhtmlです(私は情報のための部分的な内容を掲載します)

<html> 
    <head> 
     <title>Runtime Error</title> 
     <meta name="viewport" content="width=device-width" /> 
     <style> 
     body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} 
     p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} 
     b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} 
     H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } 
     H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } 
     pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt} 
     .marker {font-weight: bold; color: black;text-decoration: none;} 
     .version {color: gray;} 
     .error {margin-bottom: 10px;} 
     .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } 
     @media screen and (max-width: 639px) { 
      pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; } 
     } 
     @media screen and (max-width: 479px) { 
      pre { width: 280px; } 
     } 
     </style> 
    </head> 

    <body bgcolor="white"> 
..... 

.... 
</html> 

ですラッパーメソッドStatusCodeが200でないかどうかを調べていますが、request.ErrorExceptionがnullの場合は、この場合は一般的なメッセージが表示されます。これはまさに今のバンダイの解決策です。私はどのように正確なエラー応答を得るか、またはこの状況をどのように処理するかを知りたいと思います。

ご協力いただきまして誠にありがとうございます。

答えて

0

Webサービスでは、エラーメッセージをそのプロパティの1つに明示的に設定しない限り、実際のエラーは返されません。たとえばWebAPIでは、Request.CreateResponse()メソッドを使用してエラーメッセージを返すことができます。このメソッドは、HttpResponseMessage型を返す必要があります。以下はコードです

注:セキュリティ上の理由から例外の詳細を送信することはお勧めできません。