4

对 REST API 进行 GET 调用,Accept 为 text/csv,content-Type 为 application/json。回复应该是什么格式?

响应应该是 JSON 格式还是 CSV 格式?

4

2 回答 2

3

在 HTTP 中,客户端使用Accept 标头告诉服务器他们将接受哪些内容类型。然后服务器将返回响应并设置Content-type标头,告诉客户端实际返回的内容的类型。

您可能已经注意到 Content-type 也包含在一些 HTTP 请求中。这是因为某些类型的 HTTP 请求,如 POST 或 PUT,可以向服务器发送数据。在这种情况下,客户端使用 Content-type 标头告诉服务器内容数据的类型。

现在回答您的问题,GET 请求不应包含任何 Content-type 标头。我希望在我上面的解释之后这一点很清楚。

于 2017-03-23T20:02:41.870 回答
1

正如您正确注意到的,HTTP 客户端使用 Accept 标头告诉服务器它们将接受哪些内容类型。然后服务器将发回一个响应,其中将包含一个 Content-Type 标头,告诉客户端返回的内容的实际内容类型是什么。

但是,您可能已经注意到,HTTP 请求也可以包含 Content-Type 标头。为什么?好吧,考虑一下 POST 或 PUT 请求。对于这些请求类型,客户端实际上是在将一堆数据作为请求的一部分发送到服务器,并且 Content-Type 标头告诉服务器数据实际上是什么(从而确定服务器将如何解析它)。

特别是,对于由 HTML 表单提交产生的​​ POST 请求,请求的 Content-Type 将(通常)是以下标准表单内容类型之一,由标记上的 enctype 属性指定:

application/x-www-form-urlencoded (默认,较旧,更简单,少量简单 ASCII 文本的开销略小,不支持文件上传) multipart/form-data (较新,增加了对文件上传的支持,对于大型二进制数据或非 ASCII 文本的数量)

来源:https ://webmasters.stackexchange.com/users/12578/ilmari-karonen

基于此,您应该选择参数 Accept!

于 2017-03-23T19:56:38.120 回答