我正在阅读StackOverflow,但无法找到我的代码修复程序。我很确定我只是犯了一些愚蠢的错误,因为这是第一次使用JSoup。
我的主要目标是登录网站:https://ps.seattleschools.org/public/
现在我有了这段代码:
public static final String USERNAME = "---Place Holder---";
public static final String PASSWORD = "---Place Holder---";
public static final String URL = "https://ps.seattleschools.org/public/";
public static final String POST_URL = "https://ps.seattleschools.org/guardian/home.html";
public static void main(String[] args) throws IOException {
Connection.Response loginForm = Jsoup.connect(URL)
.data("Account", USERNAME)
.data("pw", PASSWORD)
.method(Connection.Method.POST)
.execute();
Document document = Jsoup.connect(POST_URL)
.cookies(loginForm.cookies())
.get();
System.out.println(document);
}
如果您在网站上查看,表单非常大,但大多数项目都是隐藏的。我还是应该把它们填满吗?无论如何,谢谢你的帮助
答案 0 :(得分:1)
通常,是,您需要包含将与POST请求一起发送的所有输入。
由于某种原因,您的链接对我不起作用(加载时间太长)。因此,在使用Jsoup登录时,我将布置一系列常规实践:
有时首次加载登录页面至关重要,保存Cookie 以传递给实际的登录请求(某些网站将会加载登录页面时向您发送安全令牌,这需要与请求一起发送)
隐藏的输入是有原因的。您需要包含它们!找出您需要发送的输入的一种方法是检查使用开发人员工具发送的发布请求。
我建议您阅读blog我写的关于使用Jsoup登录网站的文章。只要网站没有任何花哨的JavaScript来阻止您,我就确定您可以按照我编写的程序登录任何网站。