Estoy usando HttpClient
para llamar a mi apéndice web MVC 4. En mi llamada a la API web, devuelve un objeto de dominio. Si algo sale mal, se lanzará un HttpResponseException
en el servidor, con un mensaje personalizado.HttpClient no informa la excepción devuelta por la API web
[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;
}
Puedo ver el mensaje de error personalizado en el cuerpo de la respuesta con IE F12. Sin embargo, cuando lo llamo usando HttpClient
, no obtengo el mensaje de error personalizado, solo el código http. El "ReasonPhrase" siempre es "No encontrado" para 404, o "Internal Server Error" para 500 códigos.
¿Alguna idea? ¿Cómo devuelvo el mensaje de error personalizado de la API web, mientras mantengo el tipo de devolución normal como mi objeto de dominio?
¿Qué servidor web está utilizando, IIS o ASP.NET Web Server? –
Estoy usando IIS en un Win 2008 R2. De nuevo, está bien cuando lo llamo usando un navegador. – Calvin