2013-04-17 3 views
0

Итак, я пытаюсь войти на сайт, сохранить файлы cookie и подключиться к другому сайту, предоставив файлы cookie и приступить к очистке веб-сайта. Все с использованием Jsoup и обычной java (я планирую перейти на Android позже). Моя проблема в том, что сайт с формой входа использует https, и там я получаю a ton of errors. После поиска я нашел this stackoverflow question. Описанный метод включает получение SSL-сертификата с сайта входа и изменение расширения с .crt на .jks. Тем не менее, я продолжаю получать ошибки и, следовательно, не могу заставить их работать. Вот мой кодJsoup HTTPS, соединяющий

public static void main(String args[]) throws IOException { 

       //Log in 
       Connection.Response login = Jsoup.connect("https://login.emu.dk") 
           .data("login", "myUsername") 
           .data("pass", "myPassword") 
           .method(Method.POST) 
           .execute(); 

       //Keep logged in 
       Map<String,String> loginCookies = login.cookies(); 

       ArrayList<Lesson> unsorted = new ArrayList<Lesson>(); 
       URL elevplan = new URL("https://elevplan.dk"); 
       CSVParser csvParser = new CSVParser(); 

       System.setProperty("javax.net.ssl.trustStore", "/Users/philipjakobsen/Desktop/login.emu.dk.jks"); 
       System.setProperty("javax.net.ssl.trustStore", "/Users/philipjakobsen/Desktop/login.emu2.dk.jks"); 

       Document doc = Jsoup.connect("https://elevplan.dk") 
       .cookies(loginCookies) 
       .get(); 

Итак, кто-нибудь знает, как разрешить Jsoup создавать https-соединения? Как ранее говорилось, я хотел бы «перенести» свое приложение на Android, и в этом случае я не думаю, что можно использовать статический сертификат (?).

Заранее спасибо.

+0

Вы уверены, что вы можете подключиться к elevplan.dk Ваши очки сообщение об ошибке ошибки DNS, которая не имеет отношения HTTPS. – acdcjunior

+0

При подключении к elevplan.dk я попадаю в https://www.elevplan.dk/offentlig/default.aspx?wmDetect=ok&flash=1,0,,&colordepth=32&sw=1280&sh=1024 Но на самом деле ты 'right. login.emu.dk - это сайт, который дает мне кучу файлов cookie, и я перенаправляюсь из login.emu.dk в https://www.elevplan.dk/Moduler/Elevforside/Elevforside.aspx?elevid=1911024 Ака моя личная версия сайта. Когда я изменяю весь файл elevplan.dk на URL-адрес личной версии, я все равно получаю ошибки. Кто-нибудь знает, как использовать HttpClient Apache вместо JSoup для задачи? – Argo

ответ

3

Попробуйте следующее (просто поставить его перед Jsoup.connect («https://login.emu.dk»):

 Authenticator.setDefault(new Authenticator() { 
      @Override 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication(username, password.toCharArray()); 
      } 
     }); 
Смежные вопросы