我正在尝试使用Jsoup登录网站。当您手动登录时,会有一个用户名表单和一个密码表单,然后单击一个按钮将您转到另一个页面。
但是,它并没有与Jsoup合作。我怀疑问题是页面的URL与表单的action属性中给出的URL相同。它也不是PHP页面,而是ASPX页面。有人可以提供任何帮助吗?我的代码如下:private class LoginTask extends AsyncTask<String, Void, Document> {
@Override
protected Document doInBackground(String... loginInfo) {
try {
Connection.Response loginForm = Jsoup.connect("https://websiteHere.org/directory/Login_Student_PXP.aspx")
.method(Connection.Method.GET)
.execute();
currentPage = Jsoup.connect("https://websiteHere.org/directory/Login_Student_PXP.aspx")
.data("username", "usernameGoesHere")
.data("password", "passwordGoesHere")
.cookies(loginForm.cookies())
.post();
} catch(IOException e) {
System.out.println("Failed to log in.");
}
return currentPage;
}
@Override
protected void onPostExecute(Document result) {
loadPageFinished();
}
}
其他信息:我用websiteHere.org/directory替换了网站名称,但Login_Student_PXP.aspx仍然准确。
表格如下:<form name="Form1" method="post" action="Login_Student_PXP.aspx" id="Form1">
它前面没有websiteHere.org/directory。
非常感谢任何帮助!
编辑:该页面还有两个隐藏的输入,<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="6A78CD7E">
和<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAATriMevoEM8VekHWnEl5C3PKhoCyVdJtLIis5AgYZ/RYe4sciJO3Hoc68xTFtZGQEgSYOQVAPr9tiF9q7nSHjzouKtiufdoMJr/iFLaXnXfphkEj5veiwEQz7j1yxouXII=">
。我尝试将它们作为单独的.data命令添加到我的代码中,但它们不会改变任何内容。
答案 0 :(得分:0)
我解决了这个问题。我忘了为隐藏输入添加.data命令。