如果您正在寻找/Resource/Id
并且该资源不存在,那么我一直认为 404 是适当的响应。但是,当null
从泽西处理程序返回时,我会返回“204 No Content”。我很可能与其中任何一个一起工作,但对其他人对此的想法感到好奇。
回答我自己的下一个问题。要让 Jersey 返回 404,您必须抛出异常。
if (a == null)
throw new WebApplicationException(404);
HTTP 代码定义声明以 2 开头的代码表示成功调用,4 表示不成功调用。
当您收到 204 时,它只是向您显示没有任何东西可以返回(通常您希望进行不需要返回任何内容的 POST 或 PUT 调用)
当您收到 404 时,它表明调用不成功,因此它不会返回任何内容。
在您的情况下,404 是合适的,而不是 204!因为您可能想对来电者说他打错了电话。