重定向java中的URL



嗨,我正在为我的Web服务使用Resteasy api。。我有一个资源可以接受表单发布请求。。

@POST
@Path("/path_here")
public Response redirectURL(String req){
  String url = "http://localhost:8080/url_here";
  URL newUrl = new URL(url);
  return Response.temporaryRedirect(newUrl.toURI()).build();
}

上面的代码只是将请求的参数发布在重定向的URL上。。因此意味着重定向的URL具有post-request参数。。

我想问一下,在请求进入重定向URL之前,是否有一种方法可以过滤和更改请求参数?

首先,虽然您向Web服务发送请求"POST",但在重定向到其他网站时,您的重定向URL将转换为"GET"。我希望你已经知道了。

如果您的终点是Servlet,那么您可以在到达Servlet并尝试编辑参数之前定义一个Filter。

重定向的重要概念是,服务器不执行重定向。服务器告诉客户端"请转到该url",客户端自动对返回的url发出GET请求。您可以做的是,从POST请求中获取主体,将主体中的数据转换为url参数,并根据需要更改url参数。

附言:这是一种解决问题的方法,并不意味着你应该这样做。请不要这样做,根据你的情况找到另一个解决方案。

最新更新