咨询区

JDawg

我正在将 Web API 2 移植到 ASP.NET Core Web API 上,以前我都直接在 Response 属性上添加自定义的 Header,如下代码所示:


HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.Add("X-Total-Count", count.ToString());
return ResponseMessage(response);

请问在 ASP.NET Core Web API 上该如何往 Header 中添加呢?

回答区

Timothy Macharia

很简单,你可以在 Action 中直接拿到 Response 属性,然后向 header 中添加你的自定义键值即可,参考如下代码:


public IActionResult SendResponse()
{Response.Headers.Add("X-Total-Count", "20");return Ok();
}   

对了,如果你想让所有的 Response 都添加 header,可以优先考虑 中间件,只需要在 Request Pipeline 中配置一下即可,参考代码如下:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.Use(async (context, next) =>{context.Response.Headers.Add("X-Developed-By", "Your Name");await next.Invoke();});app.UseEndpoints(endpoints =>{endpoints.MapControllers();});}

最后你会看到如下的 response header 中信息。

Simon_Weaver

使用 自定义特性 也是一个非常不错的办法,参考如下代码:


public class AddHeaderAttribute : ResultFilterAttribute
{private readonly string _name;private readonly string _value;public AddHeaderAttribute(string name, string value){_name = name;_value = value;}public override void OnResultExecuting(ResultExecutingContext context){context.HttpContext.Response.Headers.Add(_name, new string[] { _value });base.OnResultExecuting(context);}
}

然后可以将它标注在 API 的 Action 上,如下代码所示:

        [HttpGet][AddHeader("X-MyHeader", "123")]public IEnumerable<WeatherForecast> Get(){var rng = new Random();return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateTime.Now.AddDays(index),TemperatureC = rng.Next(-20, 55),Summary = Summaries[rng.Next(Summaries.Length)]}).ToArray();}

最后的效果图如下:

点评区

不管是 request 还是 response,向 header 中配置自定义信息太常见了,比如在 request 中使用经典的 basic 验证,感觉在 ASP.NET Core Web API 中更多的是倾向于 中间件 而不是传统的 特性方式,反正都能实现,看个人爱好吧。????????????

NET问答: 如何在 ASP.NET Core Web API 的 Response 中添加自定义的 Header ?相关推荐

  1. ASP.NET Core Web API基于RESTFul APIs的集合结果过滤和分页

    译者荐语:如何在RESTFul APIs中进行集合结果分页?还是用客户端来拼接链接地址么? 原文来自互联网,由长沙DotNET技术社区[邹溪源]翻译.如译文侵犯您的版权,请联系小编,小编将在24小时内 ...

  2. Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

    图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core Web Api实现图片上传存储以及生成缩略图呢?今天我就使用MongoDB作为图片存储 ...

  3. ASP.NET Core Web API下事件驱动型架构的实现(二):事件处理器中对象生命周期的管理

    在ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现中,我介绍了事件驱动型架构的一种简单的实现,并演示了一个完整的事件派发.订阅和处理的流程.这种实现太简单了,百十行 ...

  4. 在ASP.NET Core Web API上使用Swagger提供API文档

    我在开发自己的博客系统(http://daxnet.me)时,给自己的RESTful服务增加了基于Swagger的API文档功能.当设置IISExpress的默认启动路由到Swagger的API文档页 ...

  5. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程 原文:Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程 Asp.Net Cor ...

  6. [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

    园子里关于ASP.NET Core Web API的教程很多,但大多都是使用EF+Mysql或者EF+MSSQL的文章.甚至关于ASP.NET Core Web API中使用Dapper+Mysql组 ...

  7. 如何测试ASP.NET Core Web API

    在本文中,我们将研究如何测试你的ASP .NET Core 2.0 Web API解决方案.我们将了解使用单元测试进行内部测试,使用全新的ASP .NET Core的集成测试框架来进行外部测试. 本文 ...

  8. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  9. 如何测试 ASP.NET Core Web API

    在本文中,我们将研究如何测试你的 ASP .NET Core 2.0 Web API 解决方案.我们将了解使用单元测试进行内部测试,使用全新的 ASP .NET Core 的集成测试框架来进行外部测试 ...

最新文章

  1. linux 基础知识点杂项记
  2. 数据之路 Day5 - Python基础5
  3. gridview DataFormatString
  4. 丁香园 武汉 神童_杭州、武汉、成都哪个城市更适合程序员发展
  5. cdh界面 hue 配置hbase_海量数据存储技术之HBase:使用HBase Shell操纵HBase
  6. iBatis for net 框架使用
  7. mcp证书有什么用_初级会计职称有什么用?考下证书可以做什么工作?
  8. 数据挖掘的步骤有哪些
  9. dom:原生js使div滚动到最底部
  10. flash 转 html5 工具_转
  11. 一起Talk Android吧(第三百二十六回:Android中的布局编辑器)
  12. (转)中国著名黑客你知道多少?
  13. 原子结构示意图全部_所有原子结构示意图(1-118)最新元素周期表.pdf
  14. java语言如何将小写字母转化为大写_java中如何把大写字母转换成小写字母,小写字母转换成大写字母...
  15. 简单用 python 整一个 超级玛丽 小游戏 | 内附源码
  16. MessageBox confirm弹框确认和取消按钮的使用-回调
  17. 67.Python修炼之路【72-前端-HTML列表】2018.06.28
  18. 揭密Oracle之七种武器之三:破译古老的谜题---共享CBC Latch的秘密
  19. 快端午了,用Python画一盘粽子送给你
  20. 业余时间决定了你的人生

热门文章

  1. matlab判断电话播键音,MATLAB电话拨号音的合成与识别
  2. python treeview底部加个按钮_Python爬取京东商品信息(GUI版本)
  3. python list元素合并_python list 合并连接字符串的方法
  4. PHP 发送Email的几种方法
  5. context:annotation-config vs context:component-scan
  6. day4----函数-闭包-装饰器
  7. 移动web开发适配rem
  8. 解决Ubuntu 16.04下提示boot分区空间不足的办法
  9. 命令行下的mysql的基本操作
  10. 学习kaneboy的 sps区域列表的管理入口程序