我在AsyncTask类中有以下代码(用于登录我的学生成绩簿,检索成绩,现在输出到日志):
private class infoGetter extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
String studentID = studentID2.getText().toString();
String username = user.getText().toString();
String password = pass.getText().toString();
String loginURL = "https://parents.mtsd.k12.nj.us/genesis/parents/j_security_check";
String userDataUrl = "https://parents.mtsd.k12.nj.us/genesis/parents?module=" + module + "&action=" + action + "&mpToView=" + mp + "&studentid=" + studentID;
Connection.Response res = null;
Document doc = null;
try {
res = Jsoup.connect(userDataUrl)
.userAgent("Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.4 Safari/537.36")
.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
.timeout(500)
.method(Connection.Method.GET)
.execute();
Log.e("connecting","first connection");
} catch (IOException io) {
io.printStackTrace();
}
try {
doc = Jsoup.connect(loginURL)
.userAgent("Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.4 Safari/537.36")
.referrer("https://parents.mtsd.k12.nj.us/genesis/parents?gohome=true")
.cookies(res.cookies())
.data("j_username", username)
.data("j_password", password)
.post();
Log.e("connecting","second connection");
} catch (IOException ioe) {
ioe.printStackTrace();
}
Log.e("connecting","about to check if doc is null");
if (doc != null){
Log.e("MESSAGE","doc is not null");
//everything works fine up to here!!
Elements fGrade = doc.select("[width=70%]");
for(Element e : fGrade) {
Log.e("Grade: ",e.text());
}
}
return null;
}
}
}
然而,在运行我的应用程序并登录(正确的凭据)时,我根本没有得到包含我的成绩的任何日志消息。我的Jsoup代码应该是正确的,因为我创建了一个测试项目,使用java作为我的应用程序的前言,它运行完美。但是,我不知道我做错了什么!
所有帮助一如既往地受到赞赏!
更新:因此,使用不同的日志,我已将错误范围缩小到我使用“doc.select()”调用的周围/之后的某个位置。但是,我仍然没有看到任何错误。
答案 0 :(得分:0)
好吧,事实证明我的学校决定更新他们的成绩簿的UI,所以我的查询实际上是不正确的。一切正常,更新的查询。