2015-03-13 4 views
0

Я работаю над этим методом в течение восьми часов подряд и действительно нуждаюсь в некоторой помощи.Использование файлов cookie с URLConnection (Java/Eclipse)

В настоящее время я пытаюсь смоделировать регистрационную форму и получить файл cookie взамен (полный). Тем не менее, второй шаг, который включает использование файлов cookie для входа в другие части сайта, кажется невозможным. Как примечание, я новее на Java, так что потерпите со мной:/

public class mainClass { 

    public static void main(String[] args) throws Exception{ 
    sources vars = new sources(); 

это "вары" класс содержит все источники

int passint = 0,userint = 0; 
    String password=null,username=null,layoutte=vars.Lay; 
    URLConnection oracle = new URL(vars.hComputer).openConnection(); 
    JPanel userPanel = new JPanel(); userPanel.setLayout(new GridLayout(2,2)); 
    JLabel usernameLbl = new JLabel("Username:"); 
    JLabel passwordLbl = new JLabel("Password:"); 
    JTextField usename = new JTextField(); 
    JPasswordField passwordFld = new JPasswordField(); 
    userPanel.add(usernameLbl); 
    userPanel.add(usename); 
    userPanel.add(passwordLbl); 
    userPanel.add(passwordFld); 
    int input = JOptionPane.showConfirmDialog(null, userPanel, "Enter your information:" ,JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); 

    char[] pass = passwordFld.getPassword(); 
    vars.Pass = new String(pass); 
    vars.Login = usename.getText(); 
    password = vars.Pass; 
    username = vars.Login; 

успешно получает информацию для печенье

 CookieManager manager = new CookieManager(); 
    manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); 
    CookieHandler.setDefault(manager); 


    URL url = new URL(vars.passAuth); 
    URLConnection con = url.openConnection(); 
    con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36"); 
    con.setDoOutput(true); 


    PrintWriter wr = new PrintWriter(con.getOutputStream(), true); 
    StringBuilder parameters = new StringBuilder(); 
    parameters.append("login=" + URLEncoder.encode(username, "UTF-8")); 
    parameters.append("&"); 
    parameters.append("lpass=" + URLEncoder.encode(password, "UTF-8")); 
    parameters.append("&"); 
    parameters.append("layout=" + URLEncoder.encode(layoutte, "UTF-8")); 
    wr.println(parameters); 
    System.out.println(parameters); 
    wr.close(); 

отправить проход + имя пользователя для печенья

BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream())); 
    String line; 
    for (int i=1; (line = con.getHeaderFieldKey(i))!=null; i++) { 
     if (line.equals("Set-Cookie")) {     
      String cookie = con.getHeaderField(i); 

     try{ 
      cookie = cookie.substring(0, cookie.indexOf(";")); 
      String cookieName = cookie.substring(0, cookie.indexOf("=")); 
      String cookieValue = cookie.substring(cookie.indexOf("=") +1, cookie.length()); 


     }catch (Exception e){ 
      System.out.println("Not a cookie!"); 
     } 



      CookieStore cookieJar = manager.getCookieStore(); 
       List <HttpCookie> cookies = 
        cookieJar.getCookies(); 
       for (HttpCookie cookiee: cookies) { 
//gets cookie here 
        oracle.setRequestProperty("Cookie", cookiee.toString());; 

     } 

     }//cookies 

      else if (line == null) 
      break; 
     } 
    br.close(); 

на данный момент, печенье известно, но я понятия не имею, что делать с ним дальше, а я новее/ в остальная часть этого - только я пытаюсь подключиться ко второму URL-адресу, домашняя страница была представлена ​​в первых частях кода.

try{ 
     oracle.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11"); 
     oracle.connect(); 


     BufferedReader reader2 = new BufferedReader(new InputStreamReader(oracle.getInputStream(), Charset.forName("UTF-8"))); 

     StringBuilder sb = new StringBuilder(); 
     String leene; 
     while ((leene = reader2.readLine()) != null) { 
      sb.append(leene); 
     } 
     System.out.println(sb.toString()); 


    }catch (IOException e){ 
     System.out.println(e+"BAD"); 
    } 

} 

}//pub class 

ответ

Смежные вопросы