从我的java网络应用程序中,我想调用第三方网站的网址。第三方网址需要一些只能通过post接受的输入参数。这些输入不是来自使用我网站的客户。最后,第三方页面将显示在我网站的iframe中。我可以使用一个jsp文件执行此操作,该文件将隐藏这些输入并具有如下提交的onload表单:
<script>
document.getElementById("hm").onkeyup=function(){
var input=parseInt(this.value);
if(input<0 || input>100)
alert("Value should be between 0 - 100");
return;
}
</script>
但我想避免这个jsp提交。我正在寻找一种没有JSP参与的方法。在java中有没有办法做到这一点。从我的小搜索中,我理解为<body onload="document.form1.submit()">
<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0);
%>
<FORM METHOD="post" ACTION="<%= (String)request.getAttribute("thridpartyurl") %>" id=form1 name=form1>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="rightbox">
<tr>
<td>
<input type="hidden" name="param1" value="<%= (String)request.getAttribute("param1") %>">
<input type="hidden" name="param2" value="<%= (String)request.getAttribute("param2") %>">
</td>
</tr>
</table>
</form>
</body>
无法提交帖子。并且response.sendRedirect
不能用于外部项目网址。
请帮忙。
此致
答案 0 :(得分:-1)
以下是调用任何http网址的java代码。
String url = "thirdparty site url";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
//add reuqest header
con.setRequestMethod("POST");
String urlParameters = "param1=value1¶m2=value2";
// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : " + urlParameters);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());