ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应?

2023-11-27

在 ASP.Net Core 2.0 中,我尝试返回带有状态代码的 json 或 xml 格式的消息。我从控制器返回自定义消息没有问题,但我不知道如何在中间件中处理它。

到目前为止,我的中间件类看起来像这样:

public class HeaderValidation
{
    private readonly RequestDelegate _next;
    public HeaderValidation(RequestDelegate next)
    {
        _next = next;
    }

    public async Task Invoke(HttpContext httpContext)
    {
        // How to return a json or xml formatted custom message with a http status code?

        await _next.Invoke(httpContext);
    }
}

中间件使用中填写响应httpContext.Response返回的属性HttpResponse此请求的对象。以下代码显示如何返回包含 JSON 内容的 500 响应:

public async Task Invoke(HttpContext httpContext)
{
    if (<condition>)
    {
       context.Response.StatusCode = 500;  

       context.Response.ContentType = "application/json";

       string jsonString = JsonConvert.SerializeObject(<your DTO class>);

       await context.Response.WriteAsync(jsonString, Encoding.UTF8);

       // to stop futher pipeline execution 
       return;
    }

    await _next.Invoke(httpContext);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应? 的相关文章

随机推荐

  • 如何在网站中嵌入 LIVE Colab Notebook?

    我想建立一个网站并将其部署到github页面或heroku 我的问题是 是否可以在我将托管的网站中嵌入 LIVE 我可以运行代码 Google Colab 笔记本 我想要这个嵌入式 Colab 笔记本来执行 Spark 代码 Thanks
  • 执行 jenkins sh 管道步骤时权限被拒绝

    我对这种情况有一些麻烦 每次我创建一个新的管道作业 标题为 管道 时 sh即使使用像这样的简单命令 步骤也不起作用ls or pwd它返回此日志 sh 1 var jenkins home workspace pipeline tmp du
  • Java EE 6 CDI 实现之间的差异

    我查看了 JBoss 的 JSR 299 上下文和依赖注入的 Weld 参考实现 我想知道其他 CDI 实现之间的比较 具体来说 我了解 Weld Resin CanDI 由 Caucho 开发 和 Apache OpenWebBeans
  • SQLite 连接未出现在实体数据模型向导中

    我做了什么才到达现在的位置 我安装了该程序集http system data sqlite org index html doc trunk www downloads wiki使用 GAC 和 VS2012 选项 我现在可以连接到现有的
  • 如何封送可变大小的结构数组? C# 和 C++ 互操作帮助

    我有以下 C 结构 struct InnerStruct int A int B struct OuterStruct int numberStructs InnerStruct innerStructs 和一个 C 函数 OuterStr
  • BLAS 中矩阵之间的元素明智乘法?

    我开始在 C 特别是 Intel MKL 中使用 BLAS 函数来创建一些旧 Matlab 代码的更快版本 到目前为止 它运行良好 但我不知道如何对 2 个矩阵 Matlab 中的 A B 执行元素乘法 我知道 gemv 在矩阵和向量之间做
  • 取消所有AsyncTask?

    我有一个用于获取媒体文件拇指的类 这个类似 Loader 的类启动了一个AsyncTask对于每一个ImageView 被称为SomeAdapter getView 任务本身做了很多事情 其中 之一就是调用DiskLruCache 但是当卸
  • 用于检测数据集中太大而无法完全加载到内存中的重复项的算法

    这个问题有最优解吗 描述一种在包含一百万个电话号码的文件中查找重复项的算法 该算法在运行时只有两兆字节的可用内存 这意味着您无法一次将所有电话号码加载到内存中 我的 天真的 解决方案是一个 O n 2 解决方案 它迭代这些值并只加载文件块而
  • 将 log4j.properties 转换为 log4j.xml 的脚本

    我需要使用自定义过滤器 因此我需要将一些长 log4j properties 文件转换为 log4j xml 有人知道有一种工具可以做到这一点 或者愿意贡献一个他们使用过的工具吗 到目前为止 搜索还没有找到这样的工具 我也需要这样做 但找不
  • 使用 AAR 和源 JAR 将 Android 库发布到 Maven

    有人可以给我一个关于如何使用的提示吗maven publishGradle 插件发布com android library带有 AAR 和源 jar 的项目 模块 我可以用旧的来做到这一点maven插件 但我想使用新的maven publi
  • 有没有办法获取某个类型的成员以及所有后续的基本类型?

    我有一个 I类型符号 目的 如果我打电话获取会员 它给我当前类型的成员 而不是基类 我知道我可以使用 BaseType 属性来挖掘它 并使用一些迭代代码来获取所有属性 有没有更简单的方法来获取所有成员 无论继承层次结构的级别如何 如果您正在
  • 如何在 Jupyter Notebook 中将“Completer.use_jedi”永久配置为“False”

    每次有新的Jupyter笔记本实例打开后 需要 config Completer use jedi False在自动完成功能开始工作之前运行命令 每次都要配置 好累use jedi to False在编码之前 请建议是否有永久修复以在 ju
  • having 子句出错

    select SUM Bill from ProductSaleReport group by PCI having MONTH Date between 1 and 3 请问有谁可以吗 帮我找到问题 我收到错误 消息 8121 16 级
  • PerformanceCounterCategory.GetCategories() 抛出异常 ArgumentException - 参数“categoryName”的值“无效”

    当我尝试运行此代码时 var categories System Diagnostics PerformanceCounterCategory GetCategories 我收到 ArgumentException 异常 我已经尝试过以下方
  • 如何首先使用实体​​框架5模型生成每个层次结构的表

    我首先使用 Visual Studio 2012 和实体框架 5 模型 我想使用每个层次结构一个表策略生成数据库 但找不到该选项 Entity Designer Database Generation Power Pack 不适用于 Vis
  • 将输入转换为大写的 Uppercase 属性

    我正在 MVC4 中工作 想要使用Uppercase属性 这个想法是 Uppercase 属性的存在将导致模型值在到达服务器时转换为大写 目前我的模型中有以下代码 Required Display Name Account Code Str
  • 拖/放时可以使用鼠标滚轮吗?

    在 WinForms 中 调用DoDragDrop要开始拖动项目 控件不再使用鼠标滚轮滚动 并且控件的MouseWheel事件不再被调用 直到用户放下他正在拖动的任何东西 有没有办法让鼠标滚轮在拖动时工作 你可以获得全球MouseWheel
  • 如何部署 Angular 应用程序?

    一旦 Angular 应用程序进入生产阶段 如何部署它们 到目前为止我见过的所有指南 甚至在角 io 依靠 lite server 提供服务并通过 browserSync 来反映更改 但是当您完成开发后 如何发布应用程序 我是否导入所有编译
  • 如何在运行时向用户请求提升权限?

    某些以普通用户启动的应用程序会在必要时请求提升权限 例如文件管理器需要写入此类文件夹 然后继续操作 我怎样才能复制这种行为 正如 Tam s 指出的那样 您需要启动一个具有更高权利的新流程 我过去进行了很多搜索 但没有找到任何方法来提升当前
  • ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应?

    在 ASP Net Core 2 0 中 我尝试返回带有状态代码的 json 或 xml 格式的消息 我从控制器返回自定义消息没有问题 但我不知道如何在中间件中处理它 到目前为止 我的中间件类看起来像这样 public class Head