.NET Core 2.0服务中如何设置随请求动态变化的响应头?
在.NET Core 2中根据请求内容添加响应头
没问题,我来帮你搞定这个响应头设置的事儿!在你的.NET Core 2控制器端点里,要添加依赖请求内容的响应头其实很简单,给你两种常用的实现方式:
方法1:直接通过HttpContext操作响应头
因为你的控制器继承自ControllerBase(或Controller),本身就自带HttpContext属性,直接用它就能添加响应头,不用改原有返回类型:
[HttpPost("MyEndpoint")] public string MyEndpoint([FromBody][Required] RequestBody requestBody) { string responseBody = DoStuff(requestBody); // 根据requestBody计算你需要的响应头值 string customHeaderValue = CalculateHeaderFromRequest(requestBody); // 替换成你实际要用的响应头名称,添加到响应里 HttpContext.Response.Headers.Add("X-Custom-Header", customHeaderValue); return responseBody; }
方法2:返回IActionResult来控制响应细节
如果想更贴合ASP.NET Core的MVC规范,也可以把方法返回类型改成IActionResult,这样后续调整响应状态码、添加其他响应属性会更灵活:
[HttpPost("MyEndpoint")] public IActionResult MyEndpoint([FromBody][Required] RequestBody requestBody) { string responseBody = DoStuff(requestBody); string customHeaderValue = CalculateHeaderFromRequest(requestBody); // 创建Ok结果并附加响应头 var result = Ok(responseBody); result.Headers.Add("X-Custom-Header", customHeaderValue); return result; }
另外关于用户名的事儿完全理解!注册时急急忙忙的太正常了,再等25天就能修改啦,不用太在意~
内容的提问来源于stack exchange,提问作者username
相关产品推荐
相关产品推荐

