2012-10-30 81 views
0

我有一個bash腳本,當我登錄網頁,然後解析HTML。我使用的命令是wget:發送郵件與Java

wget --save-cookies=cookies.txt --post-data "uid=USER&pass=PWD" http://www.spanishtracker.com/login.php 

wget --load-cookies=cookies.txt "http://www.spanishtracker.com/torrents.php" -O OUTPUT 

現在,我試圖用Java來創建這些命令。首先,我試圖發佈請求,但是當我執行輸出時,並沒有給我記錄。這些是Java的代碼:

try { 
     data = URLEncoder.encode("uid", "UTF-8") + "=" + URLEncoder.encode("USER", "UTF-8"); 
     data += "&" + URLEncoder.encode("pass", "UTF-8") + "=" + URLEncoder.encode("PASS", "UTF-8"); 

       // Send the request 
       URL url = new URL("http://www.spanishtracker.com/index.php"); 
       URLConnection conn = url.openConnection(); 


       conn.setDoOutput(true); 

       OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 

       //write parameters 
       writer.write(data); 
       writer.flush(); 

       // Get the response 
       StringBuffer answer = new StringBuffer(); 
       BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
       String line; 
       while ((line = reader.readLine()) != null) { 
        answer.append(line); 
       } 
       writer.close(); 
       reader.close(); 
       // temporary to build request cookie header 
       StringBuilder sb = new StringBuilder(); 

       // find the cookies in the response header from the first request 
       List<String> cookies = conn.getHeaderFields().get("Set-Cookie"); 
       if (cookies != null) { 
        System.out.println("Hay cookies para guardar"); 
        for (String cookie : cookies) { 
         if (sb.length() > 0) { 
          sb.append("; "); 
         } 

         // only want the first part of the cookie header that has the value 
         String value = cookie.split(";")[0]; 
         sb.append(value); 
        } 
       } 

請問你能否幫助我。 非常感謝和抱歉我的英語!

回答