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