Jsoup:无法访问CSRF令牌的值

时间:2019-06-19 19:29:36

标签: android jsoup

我正在尝试获取以表格形式显示的CSRF令牌的值。 但是,相反,我得到的是php echo代码,当它应该是'88569a2d60e4e7'

我在chrome上使用了检查元素工具,在那里可以看到生成的令牌。但是,JSoup并非如此。

Connection.Response res1 = Jsoup.connect("http://lms.uaf.edu.pk/login/index.php").method(Connection.Method.GET).execute();
                        Document welcomePage = res1.parse();
                        Map welcomCookies = res1.cookies();

    // Here I'm trying to access 'name' and 'value' of token

                        Element inputHidden = welcomePage.getElementById("token");
                        String securityTokenKey = inputHidden.attr("name");
                        String securityTokenValue = inputHidden.attr("value");


// Logging the value of token but getting php echo code, instead of token value
                        Log.d("myTag", securityTokenValue.toString());

这是我得到的输出:

Token value

1 个答案:

答案 0 :(得分:0)

是什么使您决定在html中具有ID ='token'的元素?
检查页面的源将显示它包含<input type="hidden" name="logintoken" value="vN8mavyjqEsJimM0ffx7ulLARg2A17vI">
要获取该元素,可以使用以下代码:

Elements inputHidden = welcomePage.getElementsByAttributeValueContaining("name", "token");
    for (Element e : inputHidden) {
        String securityTokenKey = inputHidden.attr("name");
        String securityTokenValue = inputHidden.attr("value");
        System.out.println(securityTokenKey + "=" + securityTokenValue);
    }

该值将被打印两次,因为该页面将上述元素连续两次。