Php 如何强制204 rest API返回内容?

Php 如何强制204 rest API返回内容?,php,json,api,rest,Php,Json,Api,Rest,我知道204表示服务器已理解请求,但没有可用的内容。但是我认为阻止开发人员返回这样的json消息是错误的:返回json_encode(array(“mex”=>“no content”) 我需要的是,当API返回头中的204时,还返回一个json。我不想在这种情况下使用200,因为这意味着返回了一个内容。 另外,404不合适,因为这意味着资源不存在。 有什么办法吗? 这是我的代码: http_response_code(204); return json_encode(array("mex"

我知道
204
表示服务器已理解请求,但没有可用的内容。但是我认为阻止开发人员返回这样的json消息是错误的:
返回json_encode(array(“mex”=>“no content”)


我需要的是,当API返回头中的
204
时,还返回一个json。我不想在这种情况下使用
200
,因为这意味着返回了一个内容。

另外,
404
不合适,因为这意味着资源不存在。
有什么办法吗?
这是我的代码:

http_response_code(204);
return json_encode(array("mex" => "no content"));
你不能。声明:

204响应不能包括消息体,因此总是由头字段后的第一个空行终止


试图在204响应中包含内容将导致许多HTTP客户端出现故障。如果要在响应中包含消息,则需要使用204以外的响应代码。

您的json字符串是content,因此应该使用200。如果您想使用204,那么就不能返回任何类型的内容。@vascowhite我知道这一点,但我想通过
204
告诉使用API的人没有任何内容。204表明了这一点,您无需进一步解释。这取决于您。如果你想挑三拣四,阅读说明书,看看什么是最合适的;如果不需要,请使用200。你对此有何看法?我对你的API一无所知,所以我对它没有任何看法。不,我的意思是,如果你需要返回json并清空内容,你将使用哪种代码?这是一个矛盾。如果返回JSON数据,则不会返回空响应。