Apache标头Content-Type供应商特定类型/ json

时间:2011-11-18 05:37:11

标签: php apache api rest header

我对特定于Content-Type的供应商感到困惑。默认情况下说,

Content-Type: application/json

但是根据供应商特定类型,我可以拥有此

Content-Type: application/vnd.anything.process-v1+json

如果我要检查Content-Type是否不是供应商特定的,我是否需要在PHP中使用任何特殊功能?

感谢。

1 个答案:

答案 0 :(得分:1)

如果您通过HTTP POST从客户端接受内容,则可以使用$ _SERVER ['CONTENT_TYPE']检查内容类型。我建议您在Content-Type标头中使用@ver属性,而不是嵌入供应商内容类型名称中。例如:

Content-Type: application/vnd.anything.process+json;ver=1

如果要通过HTTP POST将内容发送到服务器,则需要指定一个接受标头,以告知客户端返回特定于供应商的内容类型中的数据。像这样的东西会起作用:

header('Accept: application/vnd.anything.process+json;ver=1');

接受标题可能非常复杂。如果您不控制要作为客户端发布的服务器,则应为Accept标头提供合理的默认值。如果您希望服务器在不了解供应商标题的情况下发回普通JSON,那么这样的事情会更友好:

header('Accept: application/vnd.anything.process+json;ver=1;q=0.9, application/json;q=0.1');

最宽松的Accept标头接受任何东西:

header('Accept: application/vnd.anything.process+json;ver=1;q=0.9, application/json;q=0.5, */*;q=0.1');

以下是Accept标头的实际RFC:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html