Sto utilizzando HttpClient
per chiamare il mio MV Web di MVC 4. Nella mia chiamata API Web, restituisce un oggetto dominio. Se qualcosa va storto, un HttpResponseException
verrà lanciato sul server, con un messaggio personalizzato.HttpClient non segnala l'eccezione restituita dall'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;
}
È possibile visualizzare il messaggio di errore personalizzato nel corpo della risposta utilizzando IE F12. Tuttavia quando lo chiamo usando HttpClient
, non ottengo il messaggio di errore personalizzato, solo il codice http. "ReasonPhrase" è sempre "Not found" per 404 o "Internal Server Error" per 500 codici.
Qualche idea? Come posso rispedire il messaggio di errore personalizzato dall'API Web, pur mantenendo il normale tipo di reso come oggetto di dominio?
Quale server Web si sta utilizzando, IIS o server Web ASP.NET? –
Sto usando IIS su Win 2008 R2. Ancora una volta, è ok quando lo chiamo utilizzando un browser. – Calvin