我正在尝试使用 for 循环通过 DataOutputStream 发送多个 POST 请求,然后关闭它。目前,只有“trades”数组列表的第一个索引被发送到网站。任何其他索引都将被忽略,我假设它们没有被发送。我想知道我是否正确地冲洗了流?谢谢!!!
交易值示例:“101841599”、“101841801”
code 值示例: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();
最佳答案
事实证明,在我开始新连接之前,我必须实际获得响应才能正确关闭连接。将这些行附加到 for 循环的末尾解决了这个问题:
int nothing = con.getResponseCode();
String morenothing = con.getResponseMessage();
关于java - 在 Java 中通过 DataOutputStream 发送多个 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051426/