宁波网站制作计划,网络广告发布的形式主要包括,如何做网站排名,做外贸的免费网站有哪些现在#xff0c;当谈论起 RESTful Web API 的时候#xff0c;人们总会想到 JSON。但是实际上#xff0c;JSON 和 RESTful API 没有半毛钱关系#xff0c;只不过 JSON 恰好是RESTful API 结果的表述格式。也就是说 RESTful API 还可以使用其它的表述格式#xff0c;例如 xm… 现在当谈论起 RESTful Web API 的时候人们总会想到 JSON。但是实际上JSON 和 RESTful API 没有半毛钱关系只不过 JSON 恰好是RESTful API 结果的表述格式。也就是说 RESTful API 还可以使用其它的表述格式例如 xml 或私有的格式。这也就意味着我们需要让 RESTful API 知道我们想要返回的格式。而这就是HTTP请求和响应的核心内容之一 Content Negotiation 内容协商 内容协商是这样一个过程针对一个响应当有多种表述格式可用的时候选取最佳的一个表述。 当我们的RESTful API只面向一个API消费者的时候也许只使用 JSON 一种格式是没有什么问题的。但是如果需要面向各种形式的多个API消费者那么很有可能少数API消费者无法很好的解析JSON它们可能更习惯于xml或者其它格式。 那么如何解决这个问题呢 HTTP请求的 Accept Header 就是用来解决这个问题的API的消费者在发送请求的时候在Accept Header 里面填写好 Media Type媒体类型例如 application/json 或者 application/xml等等。 如果请求里填写的是 application/json那么RESTful API返回响应的表述格式就应该是 json… 而如果请求没有填写 Accept Header那么 RESTful API 只好使用它的默认格式进行响应了。 如果在 Accept Header 里面填写的格式不被 RESTful API 所支持那么倒是也可以返回默认的格式但还是要尽量避免这种情况的出现其实针对这种情况最好的办法是返回 406Not Acceptable 状态码表示 API消费者请求的媒体类型是不可接受的无法将其作为响应的格式。 综上Accept Header 指的是输出格式。 在 ASP.NET Core 里面对应的就是 Output Formatters。 而用于指定输入格式的 Header是 Content-Type在 ASP.NET Core 里面对应的就是 Input formatter。 例如 POST 请求的 body 就需要通过指定 Content-Type 来进行标识这个 Header 可以看作是自描述性这个约束的一部分每个消息必须包含足够的信息来知道如何对它进行处理。 官方详细文档请点击原文链接。