【发布时间】:2012-08-24 06:06:19
【问题描述】:
我正在使用 HttpClient 调用我的 MVC 4 Web api。在我的 Web API 调用中,它返回一个域对象。如果出现任何问题,将在服务器上抛出 HttpResponseException,并带有自定义消息。
[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;
}
我可以使用 IE F12 在响应正文中看到自定义的错误消息。但是,当我使用 HttpClient 调用它时,我没有收到自定义错误消息,只有 http 代码。对于 404,“ReasonPhrase”始终为“未找到”,对于 500 代码,始终为“内部服务器错误”。
有什么想法吗?如何从 Web API 发回自定义错误消息,同时保持正常返回类型作为我的域对象?
【问题讨论】:
-
您使用的是什么网络服务器,IIS 还是 ASP.NET 网络服务器?
-
我在 Win 2008 R2 上使用 IIS。同样,当我使用浏览器调用它时没问题。
标签: c# asp.net-web-api dotnet-httpclient