使用response.sendRedirect方法在java中发送Post请求

Vam*_*hna 7 java http-post

我想在java中发送一个帖子请求.我已经通过使用Http Client看到了post请求的示例.但我想使用sendRedirect方法.

例如, https://processthis.com/process?name = xyz&phone = 9898989898

我想使用post请求发送这些参数.所以,这些参数不会被任何人看到,同时我需要将我的网址重定向到该网址,因为,

response.sendRedirect("https://processthis.com/process");
Run Code Online (Sandbox Code Playgroud)

小智 7

根据带有HTTP/1.1的RFC2616,你可以发送307响应代码,这将user-agent重复它对提供主机的POST请求.在你的情况下,只是做

response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT);
response.setHeader("Location", url);
Run Code Online (Sandbox Code Playgroud)

响应是你的HttpServletResponse对象.

希望这可以帮助.


A P*_*aul 1

我认为这是不可能的。为什么不使用RequestDispatcher。这对你有用。只需在请求中设置参数即可

request.setAttribute("message", "Hello test");
RequestDispatcher dispatcher = servletContext().getRequestDispatcher(url);
Run Code Online (Sandbox Code Playgroud)

OR - HTTP 规范规定所有重定向必须采用 GET(或 HEAD)的形式。如果存在安全问题,您可以考虑加密查询字符串参数。

或者 - 另一个选项,如果您有会话,请在 servlet 中的会话中设置参数。然后在重定向到所需页面后从会话中获取它。