Jsoup认证

Jsoup认证

问题描述:

我尝试登录本网站使用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内容,但它仍未登录。你知道这里缺少什么吗?谢谢!

您的POST请求中缺少一个参数 - form_build_id。请按照以下步骤登录:

  1. 发送GET要求 - response = Jsoup.connect...主要页:https://www.startus.cc/,并从响应中提取的form_build_id值。
  2. 发送POST请求https://www.startus.cc/user/login包括form_build_id第1步中得到了饼干 - .cookies(response.cookies())
+0

谢谢你的帮助!你能解释一下更多的form_build_id参数吗? –

+0

似乎是表单状态ID - 来源:https://drupal.stackexchange.com/a/203027 – r3dst0rm