2016-12-18 25 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ですログインがステータスコードとして働いているようだ:私は使用していたコードは次のようです。理由は何でしょうか?助けや助言をいただき、ありがとうございます。

答えて

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); 
関連する問題