使用Jsoup登录Asp.net表单的方法

时间:2017-08-04 05:48:50

标签: java html asp.net jsoup

我正在尝试使用以下代码

登录http://www.investabroadproperties.com/网站
Connection.Response loginForm = Jsoup.connect("http://www.investabroadproperties.com/")
                .method(Connection.Method.GET)
                .execute();

        Document document = Jsoup.connect("http://www.investabroadproperties.com/")
                .data("ctl00$ctl02$tbEmail", "myemail")
                .data("ctl00$ctl02$tbPassword", "mypassword")
                .cookies(loginForm.cookies())
                .post();

但我无法登录此网站。通过查看网站的html源代码,我发现有一些hidden字段如下所示,但值为空。还有一个属性onsubmit="javascript:return WebForm_OnSubmit();",我不知道如何使用它。

enter image description here

我也看到this post,但我无法理解接受的答案中给出的逻辑/代码(可能会有帮助)。

有人可以帮我解决一下我该如何登录该网站?

我正在使用java和jsoup。

修改

我也试过下面的代码,但仍然没有运气

Connection.Response loginForm = Jsoup.connect("http://www.investabroadproperties.com/")
                .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1")
                .method(Connection.Method.GET)
                .execute();

        Document doc = loginForm.parse();

        Elements hiddenElems = doc.select("input[type=hidden]");
        Map<String, String> nameValue = new HashMap<>();

        for(Element elem : hiddenElems) {
            nameValue.put(elem.attr("name"), elem.attr("value"));
        }

        Document document = Jsoup.connect("http://www.investabroadproperties.com/")
                .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1")
                .data("ctl00$ctl02$tbEmail", "myValidEmail")
                .data("ctl00$ctl02$tbPassword", "myValidPassword")
                .data(nameValue)
                .cookies(loginForm.cookies())
                .post();

1 个答案:

答案 0 :(得分:3)

以下图片来自我的浏览器的开发者工具。如您所见,您仍然遗漏了请求中的一些值:

post request

您必须将所有这些值发送到服务器。