Jsoup登录aspx Digikey

时间:2015-06-10 16:33:04

标签: java parsing post login jsoup

使用jsoup连接到Digikey.it时遇到问题。 我需要使用我的帐户登录并使用cookie,但是当我执行帖子时,请不要登录。 这是我的代码:

String UrlLogin="https://www.digikey.it/classic/RegisteredUser/Login.aspx?ReturnUrl=%2fclassic%2fregistereduser%2fmydigikey.aspx%3fsite%3dit%26lang%3dit&site=it&lang=it";

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

Document loginPage = response.parse();
response = Jsoup.connect(UrlLogin)
                .data("ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtUsername", "username")
                .data("ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtPassword", "password")
                .data("ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$btnLogin", "Accesso")
                .cookies(response.cookies())
                .method(Method.POST)
                .followRedirects(true)
                .execute()
doc = response.parse();

谁能帮帮我?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码登录:

try {
            String urlLogin = "https://www.digikey.it/classic/RegisteredUser/Login.aspx?ReturnUrl=%2fclassic%2fregistereduser%2fmydigikey.aspx%3fsite%3dit%26lang%3dit&site=it&lang=it";
            Connection.Response response = Jsoup.connect(urlLogin)
                    .method(Connection.Method.GET)
                    .execute();


            Document loginPage = response.parse();

            Element eventValidation = loginPage.select("input[name=__EVENTVALIDATION]").first();
            Element viewState = loginPage.select("input[name=__VIEWSTATE]").first();


            response = Jsoup.connect(urlLogin)
                    .data("__VIEWSTATE", viewState.attr("value"))
                    .data("__EVENTVALIDATION", eventValidation.attr("value"))
                    .data("ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtUsername", "username")
                    .data("ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$txtPassword", "password")
                    .data("ctl00$ctl00$mainContentPlaceHolder$mainContentPlaceHolder$btnLogin", "Accesso")
                    .method(Connection.Method.POST)
                    .followRedirects(true)
                    .execute();

            Document document = response.parse();
            Element liElement = document.select("li#welcome_name").first();

            System.out.println(liElement.html());

        } catch (IOException e) {
            e.printStackTrace();
        }