Jsoup身份验证

时间:2017-10-20 13:05:07

标签: jsoup

我正在尝试使用Jsoup登录此网站:https://www.startus.cc/

我正在使用以下代码:

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内容,但它仍然没有登录。你知道这里缺少什么吗?谢谢!

1 个答案:

答案 0 :(得分:2)

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获得的Cookie - .cookies(response.cookies())