Używam HttpClient
do wywoływania mojego interfejsu API MVC 4. W moim wywołaniu Web API zwraca obiekt domeny. Jeśli coś pójdzie nie tak, na serwerze zostanie przesłany HttpResponseException
z niestandardowym komunikatem.HttpClient nie zgłasza wyjątku zwróconego przez interfejs API WWW
[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;
}
Widzę dostosowany komunikat o błędzie w treści odpowiedzi za pomocą IE F12. Jednak gdy wywołuję to przy użyciu HttpClient
, nie otrzymuję dostosowanego komunikatu o błędzie, tylko kod http. "ReasonPhrase" jest zawsze "Nie znaleziono" dla 404 lub "Internal Server Error" dla 500 kodów.
Wszelkie pomysły? Jak wysłać komunikat o błędzie niestandardowym z interfejsu API WWW, zachowując jednocześnie normalny typ zwracania jako obiekt mojej domeny?
Jakiego serwera używasz, serwera sieci Web IIS lub ASP.NET? –
Używam IIS na Win 2008 R2. Ponownie, jest OK, gdy zadzwonię do niego za pomocą przeglądarki. – Calvin