JSOUP - JSP登录:空白cookie

时间:2016-10-23 01:21:00

标签: java jsp cookies login jsoup

我已经在Stackoverflow中看到了一些关于此问题的答案,但没有一个能解决我的问题......

我想使用Jsoup在JSP页面中执行登录。您可以在下面看到我的代码。问题是使用post的第二个请求没有返回任何Cookie,因此,我的上一个请求无法访问登录后的页面。

我确定数据是正确的(" acao"," num"" senha")...我在检查后检查了请求登录Chrome(开发人员工具>网络标签>看到表单数据内容)。

关于代码会发生什么的任何想法?

public class Extrator {

    public static void main(String[] args) throws IOException {
        @SuppressWarnings("unused")
        Connection.Response loginForm = Jsoup.connect("URL LOGIN JSP")
            .method(Connection.Method.GET)
            .execute();

        @SuppressWarnings("unused")
        Connection.Response login = Jsoup.connect("URL LOGIN JSP")
            .data("acao", "entrar")
            .data("num", "user")
            .data("senha", "password")
            .cookies(loginForm.cookies())
            .method(Method.POST)
            .execute();

        Map<String, String> cookies = login.cookies();

        Document page = Jsoup.connect("PAGE AFTER LOGIN")
            .cookies(cookies)
            .get();
    }
}

1 个答案:

答案 0 :(得分:1)

<强>问题

表单提交的回复(login)不包含JSESSIONID的Cookie,因此对于上一次请求,您不会向该页面发送任何Cookie。

<强>解决方案

将Cookie与JSESSIONID的{​​{1}}:

一起使用
loginForm