在 Java 中通过 DataOutputStream 发送多个 POST 请求

lsn*_*017 3 java post httpurlconnection dataoutputstream

我正在尝试使用 for 循环通过 DataOutputStream 发送多个 POST 请求,然后关闭它。目前,只有“ trades ”数组列表的第一个索引被发送到网站。任何其他索引都会被忽略,我假设它们没有被发送。我想知道我是否正确冲洗了溪流?谢谢你!!!

交易值示例:“101841599”、“101841801”

代码值示例:85e4c22

我的代码片段:

       private ArrayList<String> trades = new ArrayList<String>();
       private String code;

            String url = "http://www.dota2lounge.com/ajax/bumpTrade.php";
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            con.setRequestMethod("POST");
            con.setRequestProperty("Accept-Language", "en-US,en;q=0.8");
            con.setRequestProperty("Cookie", cookie);
            con.setDoOutput(true);

        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        for(int i=0; i<trades.size(); i++){
            wr = new DataOutputStream(con.getOutputStream());
            wr.writeBytes("trade=" + trades.get(i) + "&code=" + code);
            wr.flush();
            System.out.println("again");
        }   
        wr.flush();
        wr.close();
Run Code Online (Sandbox Code Playgroud)

lsn*_*017 5

事实证明,在开始新连接之前,我必须真正获得响应才能正确关闭连接。将这些行附加到 for 循环的末尾解决了问题:

int nothing = con.getResponseCode();
String morenothing = con.getResponseMessage();
Run Code Online (Sandbox Code Playgroud)

  • 我必须说我通过谷歌搜索找到了这篇文章,它解决了我长期以来的一个问题!必须让人们知道解决方案共享的重要性!!!+1 非常感谢:) (2认同)