带有resteasy框架的Web应用程序。
@Path("/do3")
@GET
public void response(@Context HttpServletResponse response) throws IOException{
response.setStatus(202);
}
为什么get / do3返回204,而不是202?提前谢谢。
PS:(1)我切换到@post方法。它也无法得到预期的代码:202 by get。 (2)response.addHeader(“key”,“value”);可以正常工作。
答案 0 :(得分:6)
RESTEasy正在尽可能地解释您的方法 - 您没有指定返回类型,因此它将204(无内容)返回给客户端。 void GET
方法确实没有多大意义,应该避免,或转换为另一个HTTP动词(如POST)。
关于主题,这不是设置JAX-RS调用响应状态的正确方法。您应该使用ResponseBuilder代替。
Response.status(202).build();
当然,您可以将注入的HttpServletResponse
用于任何其他事情,只要它在呼叫的上下文中有意义:
response.setHeader("Location", "http://www.example.com/myresource/5");