asp.net Core MVC 内容协商

内容协商

内容协商是Asp.Net Core 控制器的一项功能,而Asp.Net MVC5 控制器并不支持它。

引入内容协商是为了满足 Web API 框架的需要。 在 Asp.net Core 中,内容协商 被内置到引擎中,供开发人员使用。

顾名思义,内容协商指的是调用方和API之间悄悄发生的协商。 协商会考虑返回数据的实际格式。

如果传入的请求包含一个Accept头,说明了调用方可以理解的MIME,那么就要考虑内容协商。

Asp.net Core 中的默认行为是将任何返回对象序列化为Json。

csharp 复制代码
[HttpGet]
public ObjectResult Get(Guid id)
{
	var n=fun(xx);
	return Ok(n);
}

如果控制器检测到Accept头,那么就会扫描头内容中列出的类型,直到找到自己可以提供的格式。这种扫描遵循的是 MIME 类型出现的顺序。如果没有找到控制器能够支持的类型,就使用Json格式

注意》》》

如果传入的请求包含 Accept头,并且控制器返回的响应是 ObjectResult类型,则会触发内容协商。

如果序列化控制器的响应(例如使用了Json方法)那么不管是不是发送了 Accept 头。都不会发生内容协商。

相关推荐
Edward-tan11 分钟前
【玩转全栈】----Django模板语法、请求与响应
后端·python·django
猫头鹰源码(同名B站)17 分钟前
基于django+vue的时尚穿搭社区(商城)(前后端分离)
前端·javascript·vue.js·后端·python·django
Watermelo61727 分钟前
随机扣款实现赛博共产主义,《明日方舟:终末地》公测支付事故复盘
数据库·后端·游戏程序·技术美术·用户体验·游戏策划·游戏美术
观音山保我别报错28 分钟前
Spring Boot 项目学习内容详解(一)
spring boot·后端·学习
哪里不会点哪里.28 分钟前
Spring Boot 启动原理深度解析
java·spring boot·后端
Hx_Ma1630 分钟前
SpringBoot配置文件占位符
java·spring boot·后端
Loo国昌42 分钟前
【LangChain1.0】第十四阶段:Agent最佳设计模式与生产实践
人工智能·后端·算法·语言模型·架构
哪里不会点哪里.1 小时前
Spring Boot 项目搭建过程
java·spring boot·后端
前端玖耀里1 小时前
Spring Boot 3 集成 Apache Calcite:多数据源查询的终极解决方案
spring boot·后端·apache
Stecurry_301 小时前
Spring Boot 深度进阶:从配置管理到生产级实践
java·spring boot·后端