2016-12-18 7 views
0

Я пытаюсь разобрать веб-сайт, требующий входа в систему. Из браузера, когда я заходил на страницу входа (https://backoffice.holidayinsider.com/backoffice2/login), я автоматически перенаправляюсь на https://backoffice.holidayinsider.com/backoffice2/login.JSOUP Автоматический вход на сайт

Итак, прежде всего, я пытаюсь автоматизировать вход в систему с помощью Java. Мой подход мотивирован этим stackoverflow response. Код, я использую следующий:

package Login; 
import org.jsoup.Connection; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import java.io.IOException; 
import java.util.Map; 
public class DoLogin { 
    public static void main(String[] args) 
    { 

     try { 

      Connection.Response loginForm = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/login") 
       .method(Connection.Method.GET) 
       .execute(); 

      Connection.Response mainPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2") 
       .data("username", "myusername") 
       .data("password", "mypass") 
       .cookies(loginForm.cookies()).execute(); 
      System.out.println(mainPage.parse()); 

      Map<String, String> cookies = mainPage.cookies(); 

      Document evaluationPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/") 
       .cookies(cookies) 
       .execute().parse(); 
      System.out.println(evaluationPage); 


     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

Кажется Войти работает как код статуса 200. Теперь проблема когда я печатаю MainPage, кажется, она все еще находится на странице входа. В чем причина? Заранее благодарю за любую помощь или предложение.

ответ

1

В то время как ваш Логин вам нужно добавить метод POST:

 Connection.Response loginForm = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/login") 
      .method(Connection.Method.GET) 
      .execute(); 

     Connection.Response mainPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/login") 
      .data("username", "myusername") 
      .data("password", "mypass") 
      .cookies(loginForm.cookies()) 
      .followRedirects(true) 
      .method(Connection.Method.POST).execute(); 
     System.out.println(mainPage.parse()); 

     Map<String, String> cookies = mainPage.cookies(); 

     Document evaluationPage = Jsoup.connect("https://backoffice.holidayinsider.com/backoffice2/") 
      .cookies(cookies) 
      .get(); 
     System.out.println(evaluationPage);