[ad_1]
モバイル アプリ開発者向けの REST API を構築しています。 API を呼び出すたびに、返されたステータスが 200 かそれ以外かを最初に確認してもらいたいのです。 だから私はグーグルで、残りのAPI asp.netのステータスコードを処理しているこのリンクを見つけました:
Web API レスポンスを作成する[^]
しかし、私の Rest API は既に 115 の Web メソッドで別の方法で構築されており、すべてのメソッドを変更してこのようにすることはできません。 以下は、私の webmethods の構築方法の例です。
Public Function InfoAndTerms(ByVal Lang As String) As Information() Implements IService.InfoAndTerms Dim result() As Information Try ' Do something and fill result Catch ex As Exception ' Do something else Finally InfoAndTerms = result End Try End Function
「InfoAndTerms」は「DataTypes」モジュールの構造体です
だから私の質問は: 応答としてオブジェクトを含む HTTP ステータス コードを返す他の方法はありませんか?
あなたの助けに感謝します
私が試したこと:
私はこれを試しました:
Public Function InfoAndTerms(ByVal Lang As String) As Information() Implements IService.InfoAndTerms Dim result() As Information Try ' Do something and fill result Catch ex As Exception Throw New System.Web.HttpException(500, "Error - InfoAndTerms") Finally InfoAndTerms = result End Try End Function
しかし、この方法をテストしたところ、ステータスが 500 ではなく 400 になりました。何が問題なのでしょうか?
解決策 1
最後に解決策を見つけました:
によると このリンク httpステータスを変更する「WebFaultException」を使用するだけです。 処理されたエラーを返す素敵なメソッドもあります:
Public Function TestMethod2(ByVal name As String) As String Implements IService.TestMethod2 If name = "" Then Dim str As New ErrMessage str.intErr = 1 str.strErrMessage = "bla bla bla" Throw New WebFaultException(Of ErrMessage)(str, HttpStatusCode.BadRequest) End If Return name End Function
その後、ステータスが変化し、返されるオブジェクトはエラーになります。 個人的には、他の何よりもオブジェクトエラーを返すことを好みます…
乾杯 :)
[ad_2]
コメント