如何在http 404 ASP.NET Web API中返回自定义Json

灰84

WebApiConfig.cs

    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "search/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        //JSON RESPONSE SETTING 
        config.Formatters.Clear();
        config.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
        config.EnableSystemDiagnosticsTracing();
    }

ReplyController.cs

public class ReplyController: ApiController
{

    [HttpGet]
    public HttpResponseMessage getReply()
    {...}
 }

我在下面编写json返回自定义错误代码:

401 Bad Request - {meta:{code:401, msg='invalid params'}}

我想为404 http状态编写json返回代码。

我在哪里写?控制器类?webconfig.cs?Global.asax?

亚伦

因此,对于在哪里编写该代码,您有两个选择:

  1. 您可以添加一个处理OnError条件的全局过滤器,然后使该过滤器返回正确的JSON响应。如果您四处搜寻,有几个不同的例子。

  2. 我喜欢做的是有一个自定义BaseApiController类,该类具有一个ExecuteRequest方法,该方法以lambda委托作为参数,然后在ExecuteRequest方法主体内,我可以在调用该委托之前进行所有设置,并完成拆卸和错误处理在我打电话给代表之后。我以这种方式使用b / c,我将SimpleInjector用作我的DI框架,但是要获得自定义过滤器以注入DI并按照我希望它们的顺序运行是很痛苦的。

让我知道这是否有意义,但是我认为这对您来说很好,b / c,那么您只需尝试/捕获就可以解决问题,而且还不错。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何强制ASP.NET Web API始终返回JSON?

如何在ASP.NET Web API中接收JSON?

来自C#ASP.NET Web表单中数据表的自定义JSON数据

ASP.NET Web API删除返回404

Post方法在Asp.net核心Web API控制器中返回404

Asp.Net Core WEB API错误404调用方法

ASP.NET Core处理Web API中的自定义响应/输出格式的方法

如何在Swashbuckl ASP.NET Core Web API上添加自定义标头

返回的自定义状态代码在ASP.Net Web API中不起作用

Asp.Net Core 2 Web API在Visual Studio 2017,Windows 10上显示HTTP 404错误

Visual Studio ASP.NET Web部署-引用自定义库的每个页面都显示错误404

如何在asp.net核心中返回自定义http标头?

Asp.net Core 2.1 Web API中的自定义授权

如何在ASP.NET Framework Web API中返回自定义JSON对象?

我需要在ASP.Net核心Web API的验证属性中返回自定义的验证结果(响应)

ASP Net Core Web API自定义模型验证

Asp.Net Mvc Web Api路由404

我收到404错误-ASP.NET Web API

在asp.net Web API中找不到HTTP自定义异常

ASP.NET Web API 5.2.3属性路由返回404

如何在Asp.Net-MVC中添加自定义HTTP标头

在针对Web API Asp.net的自定义过滤器中获取WebHostHttpRequestContext

无法为ASP.NET中的自定义错误页面返回HTTP状态404

asp.net web api 自定义方法操作类型 GET by id return 404

.NET Core Web API:返回带有内容类型应用程序/问题+json 的自定义 HTTP 状态代码

带有自定义响应包装器的 ASP.NET Core 3.1 Web API 中的 JSON 响应中断

如何自定义 ASP .NET Web API JWT 令牌响应?

找不到 ASP.Net Core web api 404

ASP.NET Core 3.1 Web API - 自定义 json