Java调用第三方url,并使用servlet中的POST参数
在我的java web应用程序中,我想调用第三方站点url。第三方url需要一些输入参数,它们只能通过post接受。这些输入不是来自使用我的网站的客户。最后,第三方页面将显示在我网站的iframe中。我可以使用jsp文件来实现这一点,该文件将隐藏这些输入,并具有如下所示的onload form submit:Java调用第三方url,并使用servlet中的POST参数,java,url,post,parameters,Java,Url,Post,Parameters,在我的java web应用程序中,我想调用第三方站点url。第三方url需要一些输入参数,它们只能通过post接受。这些输入不是来自使用我的网站的客户。最后,第三方页面将显示在我网站的iframe中。我可以使用jsp文件来实现这一点,该文件将隐藏这些输入,并具有如下所示的onload form submit: <body onload="document.form1.submit()"> <% response.setHeader("Cache-Co
<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>
但是我想避免这种jsp提交。我正在寻找一种不用JSP参与的方法。在java中有什么方法可以做到这一点吗。从我的小搜索中,我理解为response.sendRedirect
无法提交帖子。和dispatcher.forward(请求、响应)
不能用于外部项目URL
请帮忙
关于,下面是调用任何http url的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());
是的,您可以使用java来实现这一点,请参阅@Springlearner的链接-我尝试了mkyong示例。输出来自我的jboss服务器日志,而不是浏览器。如何在浏览器中显示结果页?我是从一个servlet执行此操作的。sendget和sendpost与mkyong相同。公共类ExamplePost扩展了HttpServlet{public void doGet(HttpServletRequest,HttpServletResponse){try{sendGet();}catch(异常e){}doPost(请求,响应);}public void doPost(HttpServletRequest,HttpServletResponse){try{sendPost();}}最后运行ExamplePost查看第三方页面我不明白你想说什么]@Springlearner-很抱歉我描述问题的方式。在我的网站中,当客户单击按钮时,我希望在iframe或弹出窗口中显示此第三方页面。第三方url只接受提交后的内容。我还需要向他们发送一些参数。我正在寻找一种不用jsp的方法。如何调用url在mkyong页面中进行了说明。但在使用浏览器在servlet中运行之后,我并没有在浏览器中看到第三方页面。但是第三方页面html打印在服务器日志中。实际上,我需要在浏览器中显示页面。是否要在网站中显示第三方页面/?此答案是评论中提供的链接的直接副本是的,它来自链接@springlearner。您不应复制其他人的答案并将其发布在此处。这被称为剽窃,stackoverflow不允许这样做