Java调用第三方url,并使用servlet中的POST参数

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

在我的java web应用程序中,我想调用第三方站点url。第三方url需要一些输入参数,它们只能通过post接受。这些输入不是来自使用我的网站的客户。最后,第三方页面将显示在我网站的iframe中。我可以使用jsp文件来实现这一点,该文件将隐藏这些输入,并具有如下所示的onload form submit:

<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&param2=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不允许这样做