2014-06-05 2 views
3

for 루프를 사용하여 DataOutputStream을 통해 여러 POST 요청을 보낸 다음 닫으려고합니다. 현재 "거래"배열 목록의 첫 번째 색인 만 웹 사이트로 전송됩니다. 다른 모든 인덱스는 무시되며 전송되지 않는다고 가정합니다. 나는 물줄기가 제대로 흐르고 있는지 궁금해? 고맙습니다!!! Java의 DataOutputStream을 통해 다중 POST 요청 보내기

값을 거래 : "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(); 

답변

3

실제로 새로운 연결을 시작하기 전에 연결을 적절하게 닫아야한다는 응답이있었습니다. for 루프의 끝 문제점이 선 고정 부가 : 대

int nothing = con.getResponseCode(); 
String morenothing = con.getResponseMessage(); 
+0

나는 구글 검색에 의해이 게시물에 부딪쳤다. 그리고 그것은 내가 가지고 있던 문제를 나에게 오랫동안 풀었다 !! 솔루션 공유의 중요성을 사람들에게 보여 주어야합니다 !!! +1 많은 감사합니다 :) – DanielY

2

the HttpURLConnection javadoc에서을 : "각 HttpURLConnection 인스턴스는 단일 요청을하지만 HTTP 서버에 대한 기본 네트워크 연결을 만드는 데 사용됩니다. 다른 인스턴스가 투명하게 공유 할 수 있습니다. "

그래서 여러 요청을 보내려면 각 요청에 대해 obj.openConnection()을 호출하고 연결 설정을 지정하고 OutputStream을 열고 데이터를 작성하십시오. Java 런타임은 시간과 대역폭을 절약하기 위해 실제 연결을 계속 열어 둘 수 있습니다.

+0

(= 0 I를 나타내는 int i가 trades.size를 (<); 나는 ++) { \t \t \t 콘 = (HttpURLConnection의) obj.openConnection(); \t \t \t con.setRequestMethod ("POST"); \t \t \t con.setRequestProperty ("Accept-Language", "en-US, en; q = 0.8"); \t \t \t con.setRequestProperty ("Cookie", cookie); \t \t \t con.setDoOutput (true); \t \t \t wr = new DataOutputStream (con.getOutputStream()); \t \t \t wr.writeBytes ("trade ="+ trades.get (i) + "& code ="+ code); \t \t \t wr.flush(); \t \t \t wr.close(); \t \t \t System.out.println (i); \t \t \t \t \t} – lsnow2017

+0

DataOutputStream wr;\t \t \t con = (HttpURLConnection) obj.openConnection(); (int i = 0; i lsnow2017

+0

http://pastebin.com/9h4Nzv3x – lsnow2017

관련 문제