0

RESTサービスがあり、例外を処理するヘルパークラスが必要です

私のコードは次のようになります。

[WebGet(UriTemplate = "/Test/{param}")]
public Stream Test(string param)
{
        if (param == "Ok")
            return Process(param);
        else
        {
            RESTException(System.Net.HttpStatusCode.BadRequest, "Param not ok");
            return null;
        }
}


private void RESTException(System.Net.HttpStatusCode httpStatusCode, string message)
{
        OutgoingWebResponseContext response = WebOperationContext.Current.OutgoingResponse;
        response.StatusCode = httpStatusCode; // or anything you want
        response.StatusDescription = message;
}

ブラウザからテストしますが、間違ったパラメータを渡すと、たとえば

http://myaddress/Service/Test/badparam

ブラウザには何も表示されません。

私のコードの何が問題になっていますか?

4

2 に答える 2

1

変化する

RESTException(System.Net.HttpStatusCode.BadRequest, "Param not ok");
return null;

RESTException(System.Net.HttpStatusCode.BadRequest, "Param not ok");
return "Param not ok";
于 2012-02-04T11:22:39.950 に答える
0

以下のように RESTException を変更しました。REST がブラウザーから、または REST WCF WebApi によって提供される REST テスト クライアントからテストされると、適切な例外がスローされ、slsdo は適切な例外情報を表示します。

    private void RESTException(SelectFault fault, System.Net.HttpStatusCode httpStatusCode)
    {
        throw new WebFaultException<string>(fault.ErrorMessage, httpStatusCode);
    }
于 2012-04-03T13:57:12.123 に答える