error-handling - Web API-如何防止404 HTML响应?

标签 error-handling asp.net-web-api http-status-code-404

如何更改ASP.NET Web API,使其从不返回text/html 404响应?我希望它通过ExceptionMessageMessage发送回XML/JSON。从IMO返回API没有任何意义。

只是为了澄清,这是在URL确实无效的情况下。

另一个问题是我在同一项目中托管了MVC和Web API,因此我需要以不同的方式进行响应。我猜这将取决于URL是否以“api”开头。

最佳答案

如果仅调用以下内容,则不会获得这些HTML数据throw new HttpResponseException(HttpStatusCode.NotFound);在您的ApiController方法中的某个位置。

仅当路由机制无法使您的请求适合您的ApiController的任何方法时,您才能获得此页面。因此,HTML消息附加在应用程序级别上,而不是ApiControllers中。这是一个很好的示例,说明如何处理ASP.NET应用程序Custom error pages on ASP>NET MVC3中的错误。

我什至会进一步检查请求是否到达WebAPI(而不是MVC),如果是,则重定向到IHttpActionResult中的ErrorsContoller
如何准备IHttpActionResult以获取响应,您可以在这里阅读Action Results in Web API 2

关于error-handling - Web API-如何防止404 HTML响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21293658/

相关文章:

error-handling - 如何在生产系统中获取Yii2格式的错误消息?

asp.net-mvc-4 - Autofac 和 ASP .Net MVC 4 Web API

vue.js - 如何使用vue-router在vuejs中创建一个404组件

javascript - ASP.NET Web API 中的表单

c# - 类型转换简单的通用对象

css - Firebug 显示 claro_rtl.css 的 404 错误,但我找不到试图引用该文件的来源

python - Django 1.4 可以提供媒体文件服务,但不是静态的

xml - ActionScript 3 是否需要 XML 的错误事件处理程序?

c - 使用 'goto' 的流量控制宏

c++ - 返回错误代码