Werfen HttpResponseException in WebAPI action-Methode Rücksendung von leeren 200-Antwort

Ich versuche zurück zu kehren entsprechenden Http-codes und die Antworten von meiner Anwendung, aber ich bin kämpfen. Es scheint, dass es gibt 2 Möglichkeiten, um bestimmte http-Antworten.

Den Weg ich will mit ihm zu beschäftigen, ist durch das werfen einer HttpResponseException:

public Information Get(int apiKey)
{
    if (!_users.Authenticate(apiKey))
    {
        var response = new HttpResponseMessage();
        response.StatusCode = (HttpStatusCode)401;
        response.ReasonPhrase = "ApiKey invalid";

        throw new HttpResponseException(response);
    }

    return _info.Get();
}

Allerdings, wenn ich hierzu die Antwort, die ich sehe, ist nur ein leeres 200-Antwort!

Scheint es auch, dass Sie können auch ändern Sie die Signatur der action-Methode zum zurückgeben einer HttpResponseMessage wie diese:

public HttpResponseMessage Get()
{
    if (!_users.Authenticate(apiKey))
    {
        return Request.CreateResponse((HttpStatusCode) 401, "ApiKey invalid");
    }

    return Request.CreateResponse((HttpStatusCode) 200, _info.Get());
}

Ich wirklich nicht wollen, dies zu tun, wenn ich helfen kann, ich würde viel lieber meine zurück geben, wie das Objekt, ich versuche abzurufen, anstatt den Umschlag jedes mal in einer HttpResponseMessage.

Gibt es einen Grund, warum die erste Methode ist die Rückgabe eine leere 200 statt der 401 mit der Nachricht wie ich es will?

InformationsquelleAutor jcvandan | 2012-09-04
Schreibe einen Kommentar