Ich verwende HttpClient
, um meine MVC 4 Web API aufzurufen. In meinem Web-API-Aufruf gibt es ein Domänenobjekt zurück. Wenn etwas schief geht, wird eine HttpResponseException
mit einer angepassten Nachricht auf den Server geworfen.HttpClient meldet keine Ausnahme von der Web-API zurückgegeben
[System.Web.Http.HttpGet]
public Person Person(string loginName)
{
Person person = _profileRepository.GetPersonByEmail(loginName);
if (person == null)
throw new HttpResponseException(
Request.CreateResponse(HttpStatusCode.NotFound,
"Person not found by this id: " + id.ToString()));
return person;
}
Ich kann die benutzerdefinierte Fehlermeldung im Antworttextkörper mit IE F12 sehen. Jedoch, wenn ich es unter Verwendung HttpClient
anrufe, erhalte ich nicht die kundenspezifische Fehlermeldung, nur den http-Code. Die "ReasonPhrase" ist immer "Nicht gefunden" für 404 oder "Interner Serverfehler" für 500 Codes.
Irgendwelche Ideen? Wie kann ich die benutzerdefinierte Fehlermeldung von der Web-API zurücksenden, während der normale Rückgabetyp mein Domänenobjekt bleibt?
Welchen Webserver verwenden Sie, IIS oder ASP.NET Web Server? –
Ich verwende IIS auf einem Windows 2008 R2. Auch hier ist es in Ordnung, wenn ich es über einen Browser anrufe. – Calvin