Java使用servlet中的POST参数调用thirdparty url

时间:2015-06-04 07:25:41

标签: java url post parameters

从我的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不能用于外部项目网址。

请帮忙。

此致

1 个答案:

答案 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&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());