java - 如何在 RESTful Web 服务中使用 Jersey 框架抛出 HTTP 204 状态代码?

标签 java web-services rest jersey jax-rs

我正在使用 jersey 框架开发 RESTful 网络服务。我使用以下代码抛出各种 HTTP 状态代码和响应:

public class RestNoContentException extends WebApplicationException 
{
    public RestNoContentException(String message) 
    {
        super(Response.status(Status.NO_CONTENT)
            .entity(message).type("text/plain")
            .build());
        }
}

在使用 Firefox Mozilla 休息客户端工具测试 REST 网络服务时,它显示 200 OK 状态而不是 204 NO CONTENT。我处理其他状态代码的方式与处理状态代码 204 的方式相同。其他状态代码在 rest 客户端工具上正确显示,但是当显示 204 状态代码时,它显示 200 OK 状态代码。

有人可以帮我解决这个问题吗?我错过了什么?

最佳答案

首先,204 属于响应代码的“成功”类别,因此将其作为异常结果返回是一件非常非常奇怪的事情。

其次,204 表示“无内容”,意思是响应不包含任何实体,但您在其中放入了一个实体。很可能 Jersey 正在为您将其切换为 200,这与 204 基本相同,只是它包含一个响应实体。

最后,您可以通过几个内置行为非常简单地获得 204 响应:void 方法和 null 返回值都映射到 204 响应。否则,只需返回 Response.status(204).build()

关于java - 如何在 RESTful Web 服务中使用 Jersey 框架抛出 HTTP 204 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14102797/

相关文章:

java - QPDF 的 PDF 转换问题

java - 如何将 varargs 传递给 @GET 请求

Java:更改 UI 字体 (Nimbus) 不起作用!

web-services - 是否有服务或网站可以获取与指定城市/州或邮政编码相关的内容

c# - 重命名 WCF 服务时出错

php - 按类别过滤请求 WordPress Rest Api

resources - RESTful 'PUT' 操作是否应该返回一些内容......

java - Eclipse - 更改 string.xml 中的 API key

iphone - 如何通过 SOAP 向 Web 服务发送参数?

java - 带有 Java 的 REST/XML Api