40

如果您正在寻找/Resource/Id并且该资源不存在,那么我一直认为 404 是适当的响应。但是,当null从泽西处理程序返回时,我会返回“204 No Content”。我很可能与其中任何一个一起工作,但对其他人对此的想法感到好奇。

回答我自己的下一个问题。要让 Jersey 返回 404,您必须抛出异常。

    if (a == null)
        throw new WebApplicationException(404);
4

1 回答 1

50

HTTP 代码定义声明以 2 开头的代码表示成功调用,4 表示不成功调用。

  • 当您收到 204 时,它只是向您显示没有任何东西可以返回(通常您希望进行不需要返回任何内容的 POST 或 PUT 调用)

  • 当您收到 404 时,它表明调用不成功,因此它不会返回任何内容。

在您的情况下,404 是合适的,而不是 204!因为您可能想对来电者说他打错了电话。

于 2010-02-03T21:40:09.243 回答