我已经在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();
}
}
答案 0 :(得分:1)
<强>问题强>
表单提交的回复(login
)不包含JSESSIONID
的Cookie,因此对于上一次请求,您不会向该页面发送任何Cookie。
<强>解决方案强>
将Cookie与JSESSIONID
的{{1}}:
loginForm