3

java - 如何在java REST中返回带有空实体的响应状态405?

@POST
@Path("/path")
public Response createNullEntity() {
    return Response.created(null).status(405).entity(null).build();
}

它返回状态码 405,但实体不为空,它是错误 405 的 http 页面。

4

1 回答 1

2

当您返回错误状态时,Jersey 通过 将响应委托给容器的错误处理sendError。当sendError被调用时,容器将提供一个错误页面。Java Servlet 规范§10.9 错误处理中概述了此过程。

我怀疑您看到的是容器的 405 响应的默认错误页面。您可以通过指定自定义错误页面(可能为空)来解决您的问题。sendError或者,如果您在回复中提供实体,泽西岛将不会使用。你可以给它一个像这样的空字符串:

@POST
@Path("/path")
public Response createNullEntity() {
  return Response.status(405).entity("").build();
}

以上结果Content-Length0

于 2013-07-02T16:18:11.470 回答