我正在使用 HttpClient 调用此 Web API
using (var client = new HttpClient(new HttpClientHandler() { Credentials = _credentials }))
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
return await client.PostAsJsonAsync(controlActionPath, entityObject);
}
我抛出以下错误的 Web API Controller :
throw new DuplicateNameException("User already exists.");
但是网络应用程序总是收到内部服务器错误而不是 DuplicateNameException。
如果有人建议什么是从 Web API 将确切异常返回到 Web 应用程序的最佳方法,这将很有帮助。
请您参考如下方法:
因为你抛出一个异常,它会自动变成一个内部服务器错误,因为它仍然在你的内部服务器端代码中。您可以创建一个异常处理程序,如 this answer或者您可以抛出特定的 HttpResponseException 类型,详见 Web API documentation on exception handling :
var response = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
ReasonPhrase = "User already exists."
};
throw new HttpResponseException(response);
