从JAX-RS服务发送重定向

c12*_*c12 27 java redirect jax-rs

是否可以将JAX-RS Web服务重定向到另一个网页?

就像你使用Servlet一样response.sendRedirect("http://test/test.html").

JAX-RS Web服务本身应该重定向.我正在使用RESTEasy,如果这是相关的.

smc*_*mcg 46

是的,如果您的返回类型是Response(或HttpServletResponse) https://jersey.github.io/nonav/apidocs/1.5/jersey/javax/ws/rs,您可以在泽西岛或任何JAX-RS实施(包括RestEasy)中执行此操作/core/Response.html

您可以使用以下任一方法:

Response.temporaryRedirect(URI)
Run Code Online (Sandbox Code Playgroud)
Response.seeOther(URI)
Run Code Online (Sandbox Code Playgroud)

"临时重定向"返回307状态代码,而"看到其他"返回303.

  • 然后它以相同的方式完成,因为它们都使用javax.ws.rs.core.Response. (3认同)
  • 如果我想返回一个永久重定向 (301) 怎么办?我应该使用 tempRedirect 还是 seeOther 或其他方法? (2认同)

use*_*968 5

对于像我这样正在寻找 302 的人来说,这个答案就是这样的。

通过查看代码

Response.temporaryRedirect(URI)
Run Code Online (Sandbox Code Playgroud)

您可以像这样自定义您的响应代码:

Response.status(int).location(URI).build()
Run Code Online (Sandbox Code Playgroud)

请注意,状态代码是在枚举中定义的

Response.Status
Run Code Online (Sandbox Code Playgroud)

例如 302 是Response.Status.FOUND