2017-10-20 13 views
1

私はJsoupを使用して、このウェブサイトにログインしようとしている:私はそれのために次のコードを使用していhttps://www.startus.cc/Jsoup認証

String url = "https://www.startus.cc/user/login"; 
      String userAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"; 

      Connection.Response response = Jsoup.connect(url).userAgent(userAgent) 
        .method(Connection.Method.GET) 
        .execute(); 

      response = Jsoup.connect(url) 
        .cookies(response.cookies()) 
        .data("name", "myname") 
        .data("pass", "mypass") 
        .data("op", "Log in") 
        .userAgent(userAgent) 
        .method(Connection.Method.POST) 
        .followRedirects(true) 
        .execute(); 

Document doc = Jsoup.connect("https://www.startus.cc/") 
       .cookies(response.cookies()) 
       .userAgent(userAgent) 
       .get(); 

     System.out.println(doc); 

それは私のページのHTMLコンテンツを印刷しません、それでもまだログインしていません。ここで何が欠けているか知っていますか?ありがとうございました!

答えて

2

POSTリクエストにパラメータがありません - form_build_idです。ログインする手順は次のとおりです。

  1. GETリクエスト送信 - メインページへresponse = Jsoup.connect...を:https://www.startus.cc/と応答からform_build_idの値を抽出します。 .cookies(response.cookies())から
  2. form_build_id手順1からもらったクッキーが含まれてhttps://www.startus.cc/user/loginからPOSTリクエストを送信します。
+0

ありがとうございました!そのform_build_idパラメータは何ですか? –

+0

フォームの状態IDと思われます - ソース:https://drupal.stackexchange.com/a/203027 – r3dst0rm