如何 POST 方法并将参数重定向到链接 Í 有这种可能吗?
link = http://92.42.51.91/CGGateway/Default.aspx
我目前发送信息没有问题 但我无法重定向
当我正确发送信息后,我可以使用该链接
URL url = new URL("http://62.68.645.32/Default.aspx");
Map<String, Object> params = new LinkedHashMap<String, Object>();
params.put("Timestamp", Timestamp);
params.put("Callback", "google.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
resp.sendRedirect(Link);
最佳答案
通常,当人们说“重定向”时,他们指的是 HTTP 代码 302 重定向。 http 客户端中 302 代码的许多实现仅使用 GET 进行重定向,而不管原始请求方法如何,因此使用此代码“重定向”到 POST 端点并不可靠。
解决这个问题的一个简单方法是使用 self 发布表单:
<form name="autoform" action="..." method="POST">
<input type="hidden" name="param1" value="value1">
<input type="hidden" name="param2" value="value2">
...
</form>
并使其在用户浏览器中自动提交:
<script type="text/javascript">
document.autoform.submit();
</script>
另一种方法是使用代码 307,它必须保留原始的 HTTP 方法:
response.setHeader("Location", response.encodeRedirectURL(url));
response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT);
在这种情况下,您将无法控制浏览器发送到该 url
的确切参数;相反,浏览器将自动发送与发送到您的重定向 URL 相同的参数。
关于java - 重定向和 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077066/