我对特定于供应商的Content-Type很困惑。默认为
Content-Type: application/json
但是对于供应商特定的类型,我可以使用这个
Content-Type: application/vnd.anything.process-v1+json
我需要有任何特殊的功能做在PHP中使用,如果我要检查是否内容类型不是供应商特定的?
谢谢。
如果您通过HTTP POST从客户端接受内容,您可以使用$_SERVER['CONTENT_TYPE']检查内容类型。我建议您在content - type头中使用@ver属性,而不是嵌入到供应商的内容类型名称中。例子:
Content-Type: application/vnd.anything.process+json;ver=1
如果你通过HTTP POST向服务器发送内容,你需要指定一个accept报头来告诉客户端以供应商特定的内容类型返回数据。这样就可以了:
header('Accept: application/vnd.anything.process+json;ver=1');
Accept报头可能相当复杂。如果您不控制作为客户端发送到的服务器,则应该为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