【发布时间】:2015-02-12 04:29:40
【问题描述】:
我正在尝试使用 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/目录。
任何帮助将不胜感激!
编辑:该页面还有两个隐藏输入,<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="6A78CD7E"> 和 <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAATriMevoEM8VekHWnEl5C3PKhoCyVdJtLIis5AgYZ/RYe4sciJO3Hoc68xTFtZGQEgSYOQVAPr9tiF9q7nSHjzouKtiufdoMJr/iFLaXnXfphkEj5veiwEQz7j1yxouXII=">。我尝试将它们作为单独的 .data 命令添加到我的代码中,但它们不会改变任何东西。
【问题讨论】: